Advertisement
AngelKejov

Untitled

Sep 23rd, 2021
611
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.74 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.lang.reflect.Array;
  4. import java.util.*;
  5. import java.util.stream.Collectors;
  6.  
  7. public class Problem1OSPlaning {
  8.  
  9.     public static void main(String[] args) {
  10.         Scanner sc = new Scanner(System.in);
  11.  
  12.         int[] taskArr = Arrays.stream(sc.nextLine().split(", "))
  13.                 .mapToInt(Integer::parseInt)
  14.                 .toArray();
  15.         Stack<Integer> tasks = new Stack<>();
  16.         for (Integer thread : taskArr) {
  17.             tasks.push(thread);
  18.         }
  19.         int[] threadsArr = Arrays.stream(sc.nextLine().split("\\s+"))
  20.                 .mapToInt(Integer::parseInt)
  21.                 .toArray();
  22.         Queue<Integer> threads = new ArrayDeque<>();
  23.         for (Integer thread : threadsArr) {
  24.             threads.offer(thread);
  25.         }
  26.  
  27.         int n = Integer.parseInt(sc.nextLine());
  28.  
  29.         int lastTask = 0;
  30.         int firstThread = 0;
  31.         for (int i = 0; i < tasks.size(); i++) {
  32.  
  33.             for (int j = 0; j < threads.size(); j++) {
  34.                 if (!tasks.isEmpty()) {
  35.                      lastTask = tasks.peek();
  36.                      firstThread = threads.peek();
  37.                     if (lastTask == n) {
  38.                         System.out.printf("Thread with value %d killed task %d%n", firstThread, n);
  39.                         tasks.pop();
  40.                         break;
  41.                     }
  42.                     if (firstThread >= lastTask) {
  43.                         tasks.pop();
  44.                         threads.poll();
  45.                     } else {
  46.                         threads.poll();
  47.                     }
  48.                 }
  49.             }
  50.         }
  51.         for (Integer thread : threads) {
  52.             System.out.print(thread + " ");
  53.         }
  54.     }
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement