Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.lang.reflect.Array;
- import java.util.*;
- import java.util.stream.Collectors;
- public class Problem1OSPlaning {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int[] taskArr = Arrays.stream(sc.nextLine().split(", "))
- .mapToInt(Integer::parseInt)
- .toArray();
- Stack<Integer> tasks = new Stack<>();
- for (Integer thread : taskArr) {
- tasks.push(thread);
- }
- int[] threadsArr = Arrays.stream(sc.nextLine().split("\\s+"))
- .mapToInt(Integer::parseInt)
- .toArray();
- Queue<Integer> threads = new ArrayDeque<>();
- for (Integer thread : threadsArr) {
- threads.offer(thread);
- }
- int n = Integer.parseInt(sc.nextLine());
- int lastTask = 0;
- int firstThread = 0;
- for (int i = 0; i < tasks.size(); i++) {
- for (int j = 0; j < threads.size(); j++) {
- if (!tasks.isEmpty()) {
- lastTask = tasks.peek();
- firstThread = threads.peek();
- if (lastTask == n) {
- System.out.printf("Thread with value %d killed task %d%n", firstThread, n);
- tasks.pop();
- break;
- }
- if (firstThread >= lastTask) {
- tasks.pop();
- threads.poll();
- } else {
- threads.poll();
- }
- }
- }
- }
- for (Integer thread : threads) {
- System.out.print(thread + " ");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement