Advertisement
Guest User

Untitled

a guest
Oct 16th, 2017
555
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Phoenix_Oscar_Romeo_November
  6. {
  7. public class PhoenixOscarRomeoNovember
  8. {
  9. public static void Main()
  10. {
  11. List<Creature> creatures = new List<Creature>();
  12.  
  13. string line = Console.ReadLine();
  14. while (line != "Blaze it!")
  15. {
  16. var tokens = line.Split(new char[] { '-', '>', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
  17.  
  18. string creatureName = tokens[0];
  19. string squadMateName = tokens[1];
  20.  
  21. var squadMate = new SquadMate();
  22. squadMate.MateName = squadMateName;
  23.  
  24. //Non-existing creatures
  25. if (!creatures.Any(x => x.CreatureName == creatureName))
  26. {
  27. var creature = new Creature();
  28. creature.CreatureName = creatureName;
  29. creature.SquadMates = new List<SquadMate>();
  30. creature.SquadMates.Add(squadMate);
  31. creatures.Add(creature);
  32.  
  33. line = Console.ReadLine();
  34. continue;
  35. }
  36.  
  37. //Existing creatures
  38. if (creatures.Any(x => x.CreatureName == creatureName))
  39. {
  40. var existingCreature = creatures.First(x => x.CreatureName == creatureName);
  41. var existingSquadMates = existingCreature.SquadMates;
  42.  
  43. if (!existingSquadMates.Any(x => x.MateName == squadMateName))
  44. {
  45. existingSquadMates.Add(squadMate);
  46. }
  47.  
  48. line = Console.ReadLine();
  49. continue;
  50. }
  51. }
  52.  
  53. foreach (var creature in creatures)
  54. {
  55. string name = creature.CreatureName;
  56. var squadMates = creature.SquadMates;
  57. foreach (var cr in creatures)
  58. {
  59. string nextCreatureName = cr.CreatureName;
  60. var nextSquadMates = cr.SquadMates;
  61. if (squadMates.Any(x => x.MateName == nextCreatureName) && nextSquadMates.Any(x => x.MateName == name))
  62. {
  63. squadMates.RemoveAll(x => x.MateName == nextCreatureName);
  64. nextSquadMates.RemoveAll(x => x.MateName == name);
  65. }
  66. }
  67. }
  68.  
  69. //Print
  70. foreach (var creature in creatures.OrderByDescending(x => x.SquadMates.Count))
  71. {
  72. string name = creature.CreatureName;
  73. int cnt = creature.SquadMates.Count;
  74. Console.WriteLine($"{name} : {cnt}");
  75. }
  76. }
  77. }
  78.  
  79. public class Creature
  80. {
  81. public string CreatureName { get; set; }
  82.  
  83. public List<SquadMate> SquadMates { get; set; }
  84. }
  85.  
  86. public class SquadMate
  87. {
  88. public string MateName { get; set; }
  89. }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement