Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class OSPlanning {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- ArrayDeque<Integer> tasks = new ArrayDeque<>();
- Arrays.stream(scanner.nextLine().split(", "))
- .mapToInt(Integer::parseInt)
- .forEach(tasks::push);
- ArrayDeque<Integer> threads = new ArrayDeque<>();
- Arrays.stream(scanner.nextLine().split(" "))
- .mapToInt(Integer::parseInt)
- .forEach(threads::offer);
- int taskToBeKilled = Integer.parseInt(scanner.nextLine());
- List<String> remainingThreads = new ArrayList<>();
- while (!threads.isEmpty() && !tasks.isEmpty()) {
- int threadValue = threads.peek();
- int taskValue = tasks.peek();
- if (taskValue == taskToBeKilled) {
- System.out.printf("Thread with value %d killed task %d%n", threadValue, taskToBeKilled);
- for (Integer currentThread : threads) {
- remainingThreads.add(currentThread.toString());
- }
- String finalResult = String.join(" ", remainingThreads);
- System.out.printf("%s%n", finalResult);
- break;
- }
- if (threadValue >= taskValue) {
- threads.poll();
- tasks.pop();
- } else {
- threads.poll();
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment