Advertisement
Guest User

Untitled

a guest
Jun 19th, 2016
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. namespace Task01CubicArtillery
  2. {
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6.  
  7. public class CubicArtillery
  8. {
  9. public static void Main(string[] args)
  10. {
  11. var maximumCapacity = int.Parse(Console.ReadLine());
  12. var input = Console.ReadLine();
  13. var bunkers = new Queue<char>();
  14. var weapons = new Queue<Queue<int>>();
  15. while (input != "Bunker Revision")
  16. {
  17. var inputElements = input.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries).ToArray();
  18. foreach (var element in inputElements)
  19. {
  20. int number;
  21. if (!int.TryParse(element, out number))
  22. {
  23. bunkers.Enqueue(char.Parse(element));
  24. weapons.Enqueue(new Queue<int>());
  25. }
  26. else
  27. {
  28. while (bunkers.Count > 1)
  29. {
  30. for (var i = 0; i < weapons.Count; i++)
  31. {
  32. if (weapons.Peek().Sum() == 0 && number > maximumCapacity)
  33. {
  34. weapons.Dequeue();
  35. Console.WriteLine($"{bunkers.Dequeue()} -> Empty");
  36. break;
  37. }
  38. if (weapons.Peek().Sum() + number > maximumCapacity)
  39. {
  40. Console.WriteLine($"{bunkers.Dequeue()} -> {string.Join(", ", weapons.Dequeue())}");
  41. break;
  42. }
  43. weapons.Peek().Enqueue(number);
  44. }
  45. }
  46. if (number <= maximumCapacity)
  47. {
  48. while (weapons.Peek().Sum() + number > maximumCapacity)
  49. {
  50. weapons.Peek().Dequeue();
  51. }
  52. weapons.Peek().Enqueue(number);
  53. }
  54. }
  55. }
  56. input = Console.ReadLine();
  57. }
  58. }
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement