Advertisement
Guest User

Untitled

a guest
Sep 18th, 2023
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1.  
  2. import java.util.*;
  3.  
  4. public class MonsterExtermination_2_1 {
  5.     public static void main(String[] args) {
  6.         Scanner scanner = new Scanner(System.in);
  7.  
  8.         int[] monsterArms = Arrays.stream(scanner.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
  9.         int[] soldierAttacks = Arrays.stream(scanner.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
  10.  
  11.         Queue<Integer> monsters = new ArrayDeque<>();
  12.         Stack<Integer> soldiers = new Stack<>();
  13.  
  14.         Arrays.stream(monsterArms).forEach(monsters::offer);
  15.         Arrays.stream(soldierAttacks).forEach(soldiers::push);
  16.  
  17.  
  18.         int killedMonsters = 0;
  19.  
  20.         while (!monsters.isEmpty() && !soldiers.isEmpty()) {
  21.             int monsterArmor = monsters.poll();
  22.             int soldierDamage = soldiers.pop();
  23.  
  24.             if (soldierDamage >= monsterArmor) {
  25.                 killedMonsters++;
  26.                 int remainingDamage = soldierDamage - monsterArmor;
  27.                
  28.                 if (remainingDamage > 0 && !soldiers.isEmpty()) {
  29.                     int nextAttack = soldiers.pop() + remainingDamage;
  30.                     soldiers.push(nextAttack);
  31.                 }
  32.                 else if (remainingDamage > 0){                                      //here
  33.                     soldiers.push(remainingDamage);
  34.                 }
  35.             } else {
  36.                 int reducedArmor = monsterArmor - soldierDamage;
  37.                 monsters.offer(reducedArmor);
  38.             }
  39.         }
  40.         if (monsters.isEmpty()) {
  41.             System.out.println("All monsters have been killed!");
  42.         }
  43.         if (soldiers.isEmpty()) {                                                   //here
  44.             System.out.println("The soldier has been defeated.");
  45.         }
  46.         System.out.printf("Total monsters killed: %d", killedMonsters);
  47.     }
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement