Advertisement
Guest User

The Walker

a guest
Nov 13th, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.86 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3.  
  4. /**
  5.  * Created by ChaosFire on 13.11.2017 г.
  6.  */
  7. public class TheWalker {
  8.  
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.         //чета и парсвам към long масив чрез stream
  12.         long[] time = Arrays.stream(scanner.nextLine().split(":")).mapToLong(Long::parseLong).toArray();
  13.  
  14.         //директно парсвам и умножавам входа и ползвам long, int.max * int.max ще превърти, виж constraints
  15.         //първия parse са стъпките, а втория времето за стъпка
  16.         long walkTime = Long.parseLong(scanner.nextLine()) * Long.parseLong(scanner.nextLine());
  17.         scanner.close();
  18.  
  19.         //добавяме всички секунди
  20.         time[2] += walkTime;
  21.         //челочислено деление, връща целите минути
  22.         long extraMinutes = time[2] / 60;
  23.         //секундите са остатъка от делението след като вече сме взели всички минути
  24.         time[2] %= 60;
  25.  
  26.         //добавяме всички минути
  27.         time[1] += extraMinutes;
  28.         //аналогично, но връща целите часове
  29.         long extraHours = time[1] / 60;
  30.         //аналогично, минутите са остатък след като вземем часовете
  31.         time[1] %= 60;
  32.  
  33.         time[0] += extraHours;
  34.         /*
  35.         часовете могат да станат много голямо число, гарантираш си точно изчисление, дори в тези случаи
  36.          */
  37.         time[0] %= 24;
  38.  
  39.         System.out.printf("Time Arrival: %02d:%02d:%02d", time[0], time[1], time[2]);
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement