Advertisement
Rayk

Untitled

Nov 4th, 2017
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ConsoleApp46
  6. {
  7. class Program
  8. {
  9. public static void Main()
  10. {
  11. var singers = Console.ReadLine().Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
  12. .Select(s => s.Trim()).ToArray();
  13.  
  14. var songs = Console.ReadLine().Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
  15. .Select(s => s.Trim()).ToArray();
  16.  
  17. var winners = new Dictionary<string, HashSet<string>>();
  18.  
  19. while (true)
  20. {
  21. string line = Console.ReadLine();
  22. if (line == "dawn")
  23. break;
  24.  
  25. var tokens = line.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(t => t.Trim())
  26. .ToArray();
  27.  
  28. var singer = tokens[0];
  29. var song = tokens[1];
  30. var award = tokens[2];
  31.  
  32. if (!singers.Contains(singer) || !songs.Contains(song))
  33. continue;
  34.  
  35. if (!winners.ContainsKey(singer))
  36. winners.Add(singer, new HashSet<string>());
  37.  
  38. winners[singer].Add(award);
  39. }
  40.  
  41. if (winners.Count > 0)
  42. PrintWinners(winners);
  43. else
  44. Console.WriteLine("No awards");
  45. }
  46.  
  47. private static void PrintWinners(Dictionary<string, HashSet<string>> winners)
  48. {
  49. foreach (var winner in winners.OrderByDescending(w => w.Value.Count).ThenBy(w => w.Key))
  50. {
  51. Console.WriteLine($"{winner.Key}: {winner.Value.Count} awards");
  52. var awards = winner.Value;
  53. foreach (var award in awards.OrderBy(s => s))
  54. {
  55. Console.WriteLine($"--{award}");
  56. }
  57. }
  58. }
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement