Advertisement
Prohause

Force Book modified

Mar 7th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Test // 90/100 гърми на последния тест
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. string input;
  12.  
  13. Dictionary<string, string> soldiersDictionary = new Dictionary<string, string>();
  14.  
  15. while ((input = Console.ReadLine()) != "Lumpawaroo")
  16. {
  17. if (input.Contains(" | "))
  18. {
  19. var soldier = input.Split(new string[] { " | " }, StringSplitOptions.RemoveEmptyEntries);
  20.  
  21. string side = soldier[0].Trim();
  22. string name = soldier[1].Trim();
  23. if (soldiersDictionary.ContainsKey(name))
  24. {
  25. continue;
  26. }
  27. soldiersDictionary[name] = side;
  28. }
  29. else
  30. {
  31. var soldier = input.Split(new string[] { " -> " }, StringSplitOptions.RemoveEmptyEntries);
  32.  
  33. string side = soldier[1].Trim();
  34. string name = soldier[0].Trim();
  35.  
  36. soldiersDictionary[name] = side;
  37.  
  38. Console.WriteLine($"{name} joins the {side} side!");
  39. }
  40. }
  41.  
  42. Dictionary<string, List<string>> soldiersBySide = new Dictionary<string, List<string>>();
  43.  
  44. foreach (var soldier in soldiersDictionary.OrderBy(c => c.Key))
  45. {
  46. string name = soldier.Key;
  47. string side = soldier.Value;
  48.  
  49. if (!soldiersBySide.ContainsKey(side))
  50. {
  51. soldiersBySide.Add(side, new List<string>());
  52. }
  53. soldiersBySide[side].Add(name);
  54. }
  55.  
  56. foreach (var side in soldiersBySide.OrderByDescending(x => x.Value.Count).ThenBy(c => c.Key))
  57. {
  58. Console.WriteLine($"Side: {side.Key}, Members: {side.Value.Count}");
  59.  
  60. foreach (var soldier in side.Value.OrderBy(x => x))
  61. {
  62. Console.WriteLine($"! {soldier}");
  63. }
  64. }
  65. }
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement