Advertisement
meteor4o

JA-Stacks-Exercises-05.Robotics

Sep 22nd, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.62 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayDeque;
  7. import java.util.LinkedHashMap;
  8. import java.util.Map;
  9. import java.util.Scanner;
  10.  
  11. public class Robotics {
  12.     public static void main(String[] args) throws IOException {
  13.         var reader = new BufferedReader(new InputStreamReader(System.in));
  14.  
  15.         String[] robotsWithTime = reader.readLine().split(";");
  16.         int[] processTime = new int[robotsWithTime.length];
  17.         String[] robots = new String[robotsWithTime.length];
  18.         int[] robotsTime = new int[robotsWithTime.length];
  19.  
  20.         int index = 0;
  21.         for (String robot : robotsWithTime) {
  22.             String[] robotsInfo = robot.split("-");
  23.             robots[index] = robotsInfo[0];
  24.             robotsTime[index] = Integer.parseInt(robotsInfo[1]);
  25.             index++;
  26.         }
  27.         String[] beginTime = reader.readLine().split(":");
  28.         int hours = Integer.parseInt(beginTime[0]);
  29.         int mins = Integer.parseInt(beginTime[1]);
  30.         int seconds = Integer.parseInt(beginTime[2]);
  31.         int beginSeconds = hours * 3600 + mins * 60 + seconds;
  32.  
  33.         ArrayDeque<String> queue = new ArrayDeque<>();
  34.         StringBuilder SB = new StringBuilder();
  35.  
  36.         String line = reader.readLine();
  37.  
  38.         while (!line.equals("End")) {
  39.             queue.offer(line);
  40.  
  41.             line = reader.readLine();
  42.         }
  43.         long counter = 0;
  44.         ArrayDeque<String> robotsLine = new ArrayDeque<>();
  45.  
  46.  
  47.  
  48.         while (!queue.isEmpty()) {
  49.             beginSeconds++;
  50.             String product = queue.poll();
  51.  
  52.             for (int i = 0; i < processTime.length; i++) {
  53.                 if (processTime[i] > 0) {
  54.                     processTime[i]--;
  55.                 }
  56.             }
  57.  
  58.             boolean isTaken = false;
  59.  
  60.             for (int i = 0; i < robots.length; i++) {
  61.                 if (processTime[i] == 0) {
  62.                     processTime[i] = robotsTime[i];
  63.                     SB.append(print(robots[i], product, beginSeconds));
  64.                     isTaken = true;
  65.                     break;
  66.                 }
  67.             }
  68.             if (!isTaken) {
  69.                 queue.offer(product);
  70.             }
  71.         }
  72.         System.out.println(SB.toString());
  73.     }
  74.  
  75.     private static String print(String robot, String product, long beginSeconds) {
  76.         long s = beginSeconds % 60;
  77.         long m = (beginSeconds / 60) % 60;
  78.         long h = (beginSeconds / 3600) % 24;
  79.  
  80.         return String.format("%s - %s [%02d:%02d:%02d]%n", robot, product, h, m, s);
  81.  
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement