■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 件のコメント:
コメントを投稿