Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- class RoliTheCoder
- {
- static void Main()
- {
- var input = Console.ReadLine();
- if (input == string.Empty) return;
- var eventsTable = new Dictionary<string, List<string>>();
- var idNameTable = new Dictionary<string, string>();
- while (input != "Time for Code")
- {
- var inputData = input.Split('@').Select(x => x.Trim()).ToArray();
- var participants = inputData.Take(inputData.Length).Skip(1).ToList();
- var idName = inputData[0].Split(new[] { '#' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray();
- if (idName.Length < 2) goto Next;
- var id = idName[0];
- var name = idName[1];
- if (!idNameTable.Keys.Contains(id) && !idNameTable.Values.Contains(name))
- {
- idNameTable[id] = name;
- eventsTable[name] = participants;
- }
- else if (eventsTable.ContainsKey(name) && idNameTable[id] == name)
- {
- eventsTable[name] = eventsTable[name].Union(participants).ToList();
- }
- Next: input = Console.ReadLine();
- }
- var eventsChart = from pair in eventsTable orderby pair.Value.Count() descending, pair.Key select pair;
- foreach (var pair in eventsChart)
- {
- var sortedParticipants = from list in pair.Value orderby list select list;
- Console.WriteLine($"{pair.Key} - {pair.Value.Count}");
- foreach (var participant in sortedParticipants)
- {
- Console.WriteLine($"@{participant}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement