Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Exercise3
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. string input = string.Empty;
  12.  
  13. List<Event> events = new List<Event>();
  14.  
  15. while (true)
  16. {
  17. input = Console.ReadLine();
  18. if (input == "Time for Code")
  19. break;
  20.  
  21. string[] inputArr = input.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);
  22.  
  23. string name = string.Empty;
  24. if (inputArr[1].First() == '#')
  25. name = inputArr[1].Remove(0, 1);
  26. else
  27. continue;
  28.  
  29. HashSet<string> participants = new HashSet<string>();
  30. for (int index = 2; index < inputArr.Length; index++)
  31. {
  32. if (inputArr[index].First() == '@')
  33. participants.Add(inputArr[index]);
  34. else
  35. continue;
  36. }
  37.  
  38. int id = int.Parse(inputArr[0]);
  39.  
  40. Event tempEvent = new Event(id, name, participants);
  41.  
  42. if (events.Contains(tempEvent))
  43. {
  44. int index = events.IndexOf(tempEvent);
  45. if (events[index].Name == name)
  46. {
  47. events[index].Participants.AddRange(participants);
  48. events[index].Participants = events[index].Participants.Distinct().ToList();
  49. }
  50. }
  51. else
  52. events.Add(tempEvent);
  53. }
  54.  
  55. foreach (Event ev in events.OrderByDescending(ev => ev.Participants.Count).ThenBy(ev => ev.Name))
  56. {
  57. Console.WriteLine($"{ev.Name} - {ev.Participants.Count}");
  58. foreach (string participant in ev.Participants.OrderBy(name => name))
  59. {
  60. Console.WriteLine(participant);
  61. }
  62. }
  63.  
  64. Console.ReadLine();
  65. }
  66. }
  67.  
  68. class Event
  69. {
  70. public int ID { get; set; }
  71. public string Name { get; set; }
  72. public List<string> Participants { get; set; }
  73.  
  74. public Event(int id, string name, HashSet<string> participants)
  75. {
  76. this.ID = id;
  77. this.Name = name;
  78. this.Participants = participants.ToList();
  79. }
  80.  
  81. public override bool Equals(object obj)
  82. {
  83. if (obj is Event)
  84. {
  85. Event newEvent = (Event)obj;
  86.  
  87. return this.ID == newEvent.ID;
  88. }
  89.  
  90. return false;
  91. }
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement