Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.43 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayDeque;
  7. import java.util.ArrayList;
  8. import java.util.Arrays;
  9. import java.util.List;
  10.  
  11. public class Main {
  12.  
  13.     public static void main(String[] args) throws IOException {
  14.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  15.         int numberOfRows = Integer.parseInt(reader.readLine());
  16.         ArrayDeque<Integer> platesQueue = new ArrayDeque<>();
  17.         Arrays.stream(reader.readLine().split("\\s+"))
  18.                 .mapToInt(Integer::parseInt).forEach(platesQueue::offer);
  19.  
  20.         ArrayDeque<Integer> waveStack = new ArrayDeque<>();
  21.         for (int i = 1; i <= numberOfRows; i++) {
  22.  
  23.  
  24.             int[] arr = Arrays.stream(reader.readLine().split("\\s+"))
  25.                     .mapToInt(Integer::parseInt).toArray();
  26.  
  27.             if (platesQueue.isEmpty()) {
  28.                 break;
  29.             }
  30.             Arrays.stream(arr).forEach(waveStack::push);
  31. //            Arrays.stream(reader.readLine().split("\\s+"))
  32. //                    .mapToInt(Integer::parseInt).forEach(waveStack::push);
  33.             if (i % 3 == 0) {
  34.                 int newPlate = Integer.parseInt(reader.readLine());
  35.                 platesQueue.offer(newPlate);
  36.             }
  37.  
  38.             while (platesQueue.size() > 0 && waveStack.size() > 0) {
  39.                 int currPlate = platesQueue.poll();
  40.                 int currWarrior = waveStack.pop();
  41.  
  42.                 if (currPlate != currWarrior) {
  43.                     if (currWarrior > currPlate) {
  44.                         currWarrior -= currPlate;
  45.                         waveStack.push(currWarrior);
  46.                     } else { //currWarrior < currPlate
  47.                         currPlate -= currWarrior;
  48.                         platesQueue.offer(currPlate);
  49.                     }
  50.                 }
  51.             }
  52.  
  53.         }
  54.         if (platesQueue.size() > 0) {
  55.             System.out.println("The Spartans successfully repulsed the Trojan attack.");
  56.             System.out.println("Plates left: " + platesQueue.toString()
  57.                     .replaceAll("[\\[\\]]", ""));
  58.         } else {
  59.             System.out.println("The Trojans successfully destroyed the Spartan defense.");
  60.             System.out.println("Warriors left: " + waveStack.toString()
  61.                     .replaceAll("[\\[\\]]", ""));
  62.  
  63.         }
  64.  
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement