Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2018
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _04.RoliTheCoder
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. var eventsBook = new Dictionary<string, Dictionary<string, List<string>>>();
  14. // var namesAndParticipants = new Dictionary<string, string>();
  15.  
  16. while (true)
  17. {
  18. var input = Console.ReadLine().Split("#".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
  19. if (input[0] == "Time for Code")
  20. {
  21. break;
  22. }
  23.  
  24. if (input.Length < 2)
  25. {
  26. continue;
  27. }
  28.  
  29. var eventID = input[0].Trim();
  30. var secondPartSplit = input[1].Split("@".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
  31. //if (secondPartSplit.Length<2) //check this one!!!
  32. //{
  33. // continue;
  34. //}
  35. var eventName = secondPartSplit[0].Trim();
  36.  
  37. List<string> participants = new List<string>();
  38. for (int i = 1; i < secondPartSplit.Length; i++)
  39. {
  40. participants.Add(secondPartSplit[i].Trim());
  41. }
  42.  
  43. if (!eventsBook.ContainsKey(eventID))
  44. {
  45. eventsBook.Add(eventID, new Dictionary<string, List<string>>());
  46. eventsBook[eventID].Add(eventName, new List<string>());
  47. foreach (var name in participants)
  48. {
  49. eventsBook[eventID][eventName].Add(name);
  50. }
  51. continue;
  52. }
  53.  
  54. if (!eventsBook[eventID].ContainsKey(eventName))
  55. {
  56. continue;
  57. }
  58.  
  59. if (eventsBook[eventID].ContainsKey(eventName))
  60. {
  61. foreach (var name in participants)
  62. {
  63. if (!eventsBook[eventID][eventName].Contains(name))
  64. {
  65. eventsBook[eventID][eventName].Add(name);
  66. }
  67. }
  68. }
  69. }
  70.  
  71. foreach (var kvp in eventsBook)
  72. {
  73. var eventNames = kvp.Value;
  74.  
  75. foreach (var party in eventNames.OrderByDescending(x => x.Value.Count).ThenBy(x => x.Key))
  76. {
  77. var participants = party.Value;
  78.  
  79. Console.WriteLine($"{party.Key} - {party.Value.Count}");
  80.  
  81. foreach (var person in participants.OrderBy(x => x))
  82. {
  83. Console.WriteLine($"@{person}");
  84. }
  85. }
  86. }
  87. }
  88. }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement