Advertisement
Guest User

11. Robotics

a guest
May 23rd, 2018
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.88 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.time.LocalTime;
  5. import java.time.format.DateTimeFormatter;
  6. import java.util.ArrayDeque;
  7.  
  8. /**
  9.  * Created by IntelliJ IDEA.
  10.  * User: LAPD
  11.  * Date: 22.5.2018 г.
  12.  * Time: 08:57 ч.
  13.  */
  14. public class _11Robotics {
  15.     public static void main(String[] args) throws IOException {
  16.         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  17.  
  18.         String[] robotsData = bufferedReader.readLine()
  19.                 .split(";");
  20.  
  21.         int robotsCount = robotsData.length;
  22.  
  23.         String[] robotsName = new String[robotsCount];
  24.         int[] robotsDefaultProcessTime = new int[robotsCount];
  25.         int[] robotsCurrentProgress = new int[robotsCount];
  26.  
  27.         String[] robotData;
  28.         for (int i = 0; i < robotsCount; i++) {
  29.             robotData = robotsData[i]
  30.                     .split("-");
  31.  
  32.             robotsName[i] = robotData[0];
  33.             robotsDefaultProcessTime[i] = Integer
  34.                     .parseInt(robotData[1]);
  35.             robotsCurrentProgress[i] = Integer
  36.                     .parseInt(robotData[1]);
  37.         }
  38.  
  39.         String timeData = bufferedReader.readLine();
  40.  
  41.         LocalTime currentTime = LocalTime
  42.                 .parse(timeData, DateTimeFormatter
  43.                         .ofPattern("H:mm:ss"));
  44.  
  45.         ArrayDeque<String> productsQueue = new ArrayDeque<>();
  46.  
  47.         String productName;
  48.         while (!"End".equals(productName = bufferedReader.readLine())) {
  49.             productsQueue.add(productName);
  50.         }
  51.  
  52.         StringBuilder result = new StringBuilder();
  53.  
  54.         boolean hasFreeRobot;
  55.         int freeRobotIndex;
  56.        
  57.         while (productsQueue.size() > 0) {
  58.             currentTime = currentTime.plusSeconds(1);
  59.  
  60.             hasFreeRobot = false;
  61.             freeRobotIndex = -1;
  62.  
  63.             for (int i = 0; i < robotsCount; i++) {
  64.                 robotsCurrentProgress[i]++;
  65.  
  66.                 if (!hasFreeRobot
  67.                         && robotsCurrentProgress[i] >= robotsDefaultProcessTime[i]) {
  68.                     hasFreeRobot = true;
  69.                     freeRobotIndex = i;
  70.                 }
  71.             }
  72.  
  73.             if (hasFreeRobot) {
  74.                 robotsCurrentProgress[freeRobotIndex] = 0;
  75.  
  76.                 result.append(robotsName[freeRobotIndex])
  77.                         .append(" - ")
  78.                         .append(productsQueue.remove())
  79.                         .append(" [")
  80.                         .append(currentTime.format(DateTimeFormatter
  81.                                 .ofPattern("HH:mm:ss")))
  82.                         .append("]")
  83.                         .append(System.lineSeparator());
  84.             } else {
  85.                 productsQueue.add(productsQueue.remove());
  86.             }
  87.         }
  88.  
  89.         System.out.println(result);
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement