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.time.LocalTime;
- import java.time.format.DateTimeFormatter;
- import java.util.*;
- public class Main {
- public static void main(String[] args) throws IOException {
- // Scanner scanner = new Scanner(System.in);
- var reader = new BufferedReader(new InputStreamReader(System.in));
- String[] robotsWithTimes = reader.readLine().split(";");
- Map<String, Integer> robots = new LinkedHashMap<>();
- int[] processTime = new int[robotsWithTimes.length];
- for (String robot : robotsWithTimes) {
- String[] data = robot.split("-");
- robots.put(data[0], Integer.parseInt(data[1]));
- }
- String[] timeData = reader.readLine().split(":");// прочитаме си времето и си отделяме часове, минути и сек
- int hours = Integer.parseInt(timeData[0]);
- int minutes = Integer.parseInt(timeData[1]);
- int seconds = Integer.parseInt(timeData[2]);
- int beginSeconds = hours * 360 + minutes * 60 + seconds;//правим началното време в секунди
- ArrayDeque<String> queue = new ArrayDeque<>();
- String line = reader.readLine();
- while (!line.equals("End")) {
- queue.offer(line);
- line = reader.readLine();
- }
- StringBuilder stringBuilder = new StringBuilder();
- while (!queue.isEmpty()) {
- beginSeconds++;
- String product = queue.poll();
- for (int i = 0; i < processTime.length; i++) {
- if (processTime[i] > 0) {
- processTime[i]--;
- }
- }
- int i = 0;
- boolean isTaken = false;
- for (Map.Entry<String, Integer> robot : robots.entrySet()) {
- if (processTime[i] == 0) {
- processTime[i] = robot.getValue();
- stringBuilder.append(print(robot.getKey(), product, beginSeconds));
- stringBuilder.append(System.lineSeparator());
- isTaken = true;
- break;
- }
- i++;
- }
- if (!isTaken) {
- queue.offer(product);
- }
- }
- System.out.println(stringBuilder.toString());
- }
- private static String print(String robot, String product, long beginSeconds) {
- long s = beginSeconds % 60;// тук обръщаме секундите в часове.минути секунди
- long m = (beginSeconds / 60) % 60;
- long h = (beginSeconds / (60 * 60)) % 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