Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- namespace TrojanInvasion
- {
- class Program
- {
- static void Main(string[] args)
- {
- int trojanWaves = int.Parse(Console.ReadLine());
- List<int> tokenPlates = Console.ReadLine()
- .Split(' ', StringSplitOptions.RemoveEmptyEntries)
- .Select(int.Parse)
- .ToList();
- Queue<int> spartanPlates = new Queue<int>();
- foreach (var plate in tokenPlates)
- {
- spartanPlates.Enqueue(plate);
- }
- Stack<int> trojanWarriors = new Stack<int>();
- int fightingWarrior = 0;
- int deffendingPlate = 0;
- int leftoverPlating = 0;
- for (int i = 1; i <= trojanWaves; i++)
- {
- List<int> inputTrojanWarriors = Console.ReadLine()
- .Split(' ', StringSplitOptions.RemoveEmptyEntries)
- .Select(int.Parse)
- .ToList();
- if (i % 3 == 0)
- {
- int addPlate = int.Parse(Console.ReadLine());
- spartanPlates.Enqueue(addPlate);
- }
- else if (spartanPlates.Count <= 0)
- {
- break;
- }
- foreach (var warrior in inputTrojanWarriors)
- {
- trojanWarriors.Push(warrior);
- }
- if (deffendingPlate == 0)
- {
- deffendingPlate = spartanPlates.Dequeue();
- }
- while (trojanWarriors.Count>0 && deffendingPlate>0)
- {
- fightingWarrior = trojanWarriors.Pop();
- if (fightingWarrior > deffendingPlate)
- {
- fightingWarrior -= deffendingPlate;
- trojanWarriors.Push(fightingWarrior);
- deffendingPlate = 0;
- }
- else if (deffendingPlate > fightingWarrior)
- {
- deffendingPlate -= fightingWarrior;
- }
- else if (fightingWarrior== deffendingPlate)
- {
- deffendingPlate = 0;
- }
- }
- }
- if (trojanWarriors.Count > 0)
- {
- Console.WriteLine
- ("The Trojans successfully destroyed the Spartan defense.");
- Console.Write("Warriors left: ");
- while (trojanWarriors.Count > 0)
- {
- if (trojanWarriors.Count==1)
- {
- Console.WriteLine(trojanWarriors.Pop());
- break;
- }
- Console.Write($"{trojanWarriors.Pop()}, ");
- }
- }
- else if (spartanPlates.Count > 0)
- {
- Console.WriteLine
- ("The Spartans successfully repulsed the Trojan attack.");
- Console.Write("Plates left: ");
- while (spartanPlates.Count > 0)
- {
- if (spartanPlates.Count == 1)
- {
- Console.WriteLine(spartanPlates.Dequeue());
- break;
- }
- Console.Write($"{spartanPlates.Dequeue()}, ");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement