Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.InputStreamReader;
- import java.io.BufferedReader;
- public class Map {
- private static int to24 (int hour, boolean pm) {
- if (pm) {
- if (hour != 12) {
- return hour + 12;
- } else {
- return hour;
- }
- } else {
- if (hour == 12) {
- return 24;
- } else {
- return hour;
- }
- }
- }
- public static void main (String[] args) throws Throwable {
- InputStreamReader stream = new InputStreamReader(System.in);
- BufferedReader reader = new BufferedReader(stream);
- int[] distances = {450, 140, 125, 365, 250, 160, 380, 235, 320, 0};
- for (int i = 0; i < 5; i++) {
- String[] input = reader.readLine().split(", ");
- int cityA = input[0].charAt(0) - 65;
- int cityB = input[1].charAt(0) - 65;
- int startA = Integer.parseInt(input[2]);
- int startB = Integer.parseInt(input[4]);
- boolean pmA = (input[3].equals("PM")) ? true : false;
- boolean pmB = (input[5].equals("PM")) ? true : false;
- int speedA = Integer.parseInt(input[6]);
- int speedB = Integer.parseInt(input[7]);
- startA = to24(startA, pmA);
- startB = to24(startB, pmB);
- double distance = 0;
- for (int j = cityA; j < cityB; j++) {
- distance += distances[j];
- }
- int difference;
- if (Math.abs(startA - startB) <= 12) {
- difference = startA - startB;
- } else {
- difference = (Math.abs(startA - startB) - 24);
- }
- double time = 60 * (distance - speedB * (difference)) / (speedA + speedB);
- int hour = (int) time / 60;
- int minutes = (int) Math.round(time % 60);
- System.out.printf("%d:%02d\n", hour, minutes);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement