Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class MonsterExtermination_2_1 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int[] monsterArms = Arrays.stream(scanner.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
- int[] soldierAttacks = Arrays.stream(scanner.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
- Queue<Integer> monsters = new ArrayDeque<>();
- Stack<Integer> soldiers = new Stack<>();
- Arrays.stream(monsterArms).forEach(monsters::offer);
- Arrays.stream(soldierAttacks).forEach(soldiers::push);
- int killedMonsters = 0;
- while (!monsters.isEmpty() && !soldiers.isEmpty()) {
- int monsterArmor = monsters.poll();
- int soldierDamage = soldiers.pop();
- if (soldierDamage >= monsterArmor) {
- killedMonsters++;
- int remainingDamage = soldierDamage - monsterArmor;
- if (remainingDamage > 0 && !soldiers.isEmpty()) {
- int nextAttack = soldiers.pop() + remainingDamage;
- soldiers.push(nextAttack);
- }
- else if (remainingDamage > 0){ //here
- soldiers.push(remainingDamage);
- }
- } else {
- int reducedArmor = monsterArmor - soldierDamage;
- monsters.offer(reducedArmor);
- }
- }
- if (monsters.isEmpty()) {
- System.out.println("All monsters have been killed!");
- }
- if (soldiers.isEmpty()) { //here
- System.out.println("The soldier has been defeated.");
- }
- System.out.printf("Total monsters killed: %d", killedMonsters);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement