Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayDeque;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.Scanner;
- public class Robotics {
- public static void main(String[] args) throws IOException {
- var reader = new BufferedReader(new InputStreamReader(System.in));
- String[] robotsWithTime = reader.readLine().split(";");
- int[] processTime = new int[robotsWithTime.length];
- String[] robots = new String[robotsWithTime.length];
- int[] robotsTime = new int[robotsWithTime.length];
- int index = 0;
- for (String robot : robotsWithTime) {
- String[] robotsInfo = robot.split("-");
- robots[index] = robotsInfo[0];
- robotsTime[index] = Integer.parseInt(robotsInfo[1]);
- index++;
- }
- String[] beginTime = reader.readLine().split(":");
- int hours = Integer.parseInt(beginTime[0]);
- int mins = Integer.parseInt(beginTime[1]);
- int seconds = Integer.parseInt(beginTime[2]);
- int beginSeconds = hours * 3600 + mins * 60 + seconds;
- ArrayDeque<String> queue = new ArrayDeque<>();
- StringBuilder SB = new StringBuilder();
- String line = reader.readLine();
- while (!line.equals("End")) {
- queue.offer(line);
- line = reader.readLine();
- }
- long counter = 0;
- ArrayDeque<String> robotsLine = new ArrayDeque<>();
- while (!queue.isEmpty()) {
- beginSeconds++;
- String product = queue.poll();
- for (int i = 0; i < processTime.length; i++) {
- if (processTime[i] > 0) {
- processTime[i]--;
- }
- }
- boolean isTaken = false;
- for (int i = 0; i < robots.length; i++) {
- if (processTime[i] == 0) {
- processTime[i] = robotsTime[i];
- SB.append(print(robots[i], product, beginSeconds));
- isTaken = true;
- break;
- }
- }
- if (!isTaken) {
- queue.offer(product);
- }
- }
- System.out.println(SB.toString());
- }
- private static String print(String robot, String product, long beginSeconds) {
- long s = beginSeconds % 60;
- long m = (beginSeconds / 60) % 60;
- long h = (beginSeconds / 3600) % 24;
- return String.format("%s - %s [%02d:%02d:%02d]%n", robot, product, h, m, s);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement