Advertisement
Guest User

RoliThCoder

a guest
Aug 19th, 2017
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.74 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. class RoliTheCoder
  6. {
  7.     static void Main()
  8.     {
  9.         var input = Console.ReadLine();
  10.         if (input == string.Empty) return;
  11.  
  12.         var eventsTable = new Dictionary<string, List<string>>();
  13.         var idNameTable = new Dictionary<string, string>();
  14.  
  15.         while (input != "Time for Code")
  16.         {
  17.             var inputData       = input.Split('@').Select(x => x.Trim()).ToArray();
  18.             var participants    = inputData.Take(inputData.Length).Skip(1).ToList();
  19.  
  20.             var idName = inputData[0].Split(new[] { '#' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray();
  21.  
  22.             if (idName.Length < 2) goto Next;
  23.  
  24.             var id   = idName[0];
  25.             var name = idName[1];
  26.  
  27.             if (!idNameTable.Keys.Contains(id) && !idNameTable.Values.Contains(name))
  28.             {
  29.                 idNameTable[id] = name;
  30.                 eventsTable[name] = participants;
  31.             }
  32.             else if (eventsTable.ContainsKey(name) && idNameTable[id] == name)
  33.             {
  34.                 eventsTable[name] = eventsTable[name].Union(participants).ToList();
  35.             }
  36.  
  37.             Next: input = Console.ReadLine();
  38.         }
  39.  
  40.         var eventsChart = from pair in eventsTable orderby pair.Value.Count() descending, pair.Key select pair;
  41.  
  42.         foreach (var pair in eventsChart)
  43.         {
  44.             var sortedParticipants = from list in pair.Value orderby list select list;
  45.  
  46.             Console.WriteLine($"{pair.Key} - {pair.Value.Count}");
  47.             foreach (var participant in sortedParticipants)
  48.             {
  49.                 Console.WriteLine($"@{participant}");
  50.             }
  51.         }
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement