Advertisement
Guest User

Untitled

a guest
May 20th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.25 KB | None | 0 0
  1. package PredvaritelnoAdvanced.StacksAndQueues.classTwo;
  2.  
  3. import java.util.ArrayDeque;
  4. import java.util.Deque;
  5. import java.util.Scanner;
  6.  
  7. @SuppressWarnings("all")
  8. public class E_Robotics_05 {
  9.  
  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.  
  13.         String[] roboData = scanner.nextLine().split(";");
  14.  
  15.         String[] robots = new String[roboData.length];
  16.         int[] workingTime = new int[roboData.length];
  17.         int[] processTime = new int[roboData.length];
  18.         for (int i = 0; i < roboData.length; i++) {
  19.             robots[i] = roboData[i].split("-")[0];
  20.             workingTime[i] = Integer.parseInt(roboData[i].split("-")[1]);
  21.         }
  22.         String[] timeData = scanner.nextLine().split(":");
  23.         int hours = Integer.parseInt(timeData[0]);
  24.         int minutes = Integer.parseInt(timeData[1]);
  25.         int seconds = Integer.parseInt(timeData[2]);
  26.         int startTime = hours * 3600 + minutes * 60 + seconds;
  27.  
  28.         int time = 0;
  29.         Deque<String> products = new ArrayDeque<>();
  30.         String currentProduct = scanner.nextLine();
  31.         while (!currentProduct.equals("End")) {
  32.             products.offer(currentProduct);
  33.             currentProduct = scanner.nextLine();
  34.         }
  35.         while (!products.isEmpty()) {
  36.             time++;
  37.  
  38.             String product = products.pollFirst();
  39.             boolean isAssigned = false;
  40.             for (int i = 0; i < robots.length; i++) {
  41.                 if (processTime[i] == 0 && !isAssigned) {
  42.                     processTime[i] = workingTime[i];
  43.                     printTask(robots[i], startTime + time, product);
  44.                     isAssigned = true;
  45.                 }
  46.                 if (processTime[i] > 0) {
  47.                     processTime[i]--;
  48.                 }
  49.             }
  50.             if (!isAssigned) {
  51.                 products.offer(product);
  52.             }
  53.  
  54.         }
  55.     }
  56.  
  57.     private static void printTask(String robot, int time, String product) {
  58.         int hours = (time / 3600) % 24;
  59.         int minutes = time % 3600 / 60;
  60.         int seconds = time % 60;
  61.  
  62.         System.out.println(String.format("%s - %s [%02d:%02d:%02d]"
  63.                 , robot, product, hours, minutes, seconds));
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement