■0163 Highway Toll
やるだけ.
import java.util.*; import java.lang.*; import java.math.*; import java.io.*; import static java.lang.Math.*; import static java.util.Arrays.*; public class Main{ Scanner sc=new Scanner(System.in); int INF=1<<28; double EPS=1e-9; void run(){ int[][] d={ // {0, 6, 13, 18, 23, 43, 58}, // {6, 0, 7, 12, 17, 37, 52}, // {13, 7, 0, 5, 10, 30, 45}, // {18, 12, 5, 0, 5, 25, 40}, // {23, 17, 10, 5, 0, 20, 35}, // {43, 37, 30, 25, 20, 0, 15}, // {58, 52, 45, 40, 35, 15, 0}, // }; int[][] c={ // {0, 300, 500, 600, 700, 1350, 1650}, // {300, 0, 350, 450, 600, 1150, 1500}, // {500, 350, 0, 250, 400, 1000, 1350}, // {600, 450, 250, 0, 250, 850, 1300}, // {700, 600, 400, 250, 0, 600, 1150}, // {1350, 1150, 1000, 850, 600, 0, 500}, // {1650, 1500, 1350, 1300, 1150, 500, 0},}; // for(;;){ int ic1=sc.nextInt()-1; if(ic1==-1){ break; } int h1=sc.nextInt(); int m1=sc.nextInt()+h1*60; int ic2=sc.nextInt()-1; int h2=sc.nextInt(); int m2=sc.nextInt()+h2*60; int s=17*60+30; int g=19*60+30; int ans=c[ic1][ic2]; if((s<=m1&&m1<=g)||(s<=m2&&m2<=g)){ if(d[ic1][ic2]<=40){ // 半額 ans=(int)(Math.ceil(ans/2./50.)*50+EPS); } } println(""+ans); } } void debug(Object... os){ System.err.println(Arrays.deepToString(os)); } void print(String s){ System.out.print(s); } void println(String s){ System.out.println(s); } public static void main(String[] args){ // System.setOut(new PrintStream(new BufferedOutputStream(System.out))); new Main().run(); } }
0 件のコメント:
コメントを投稿