Advertisement
Ivakis

Karaoke

Sep 2nd, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 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 P02_SoftuniKaraoke
  8. {
  9. class SoftuniKaraoke
  10. {
  11. static void Main(string[] args)
  12. {
  13. var singers = Console.ReadLine()
  14. .Split(", ".ToCharArray()
  15. , StringSplitOptions.RemoveEmptyEntries).ToList();
  16.  
  17. var songs = Console.ReadLine()
  18. .Split(',').ToList().Select(a => a.TrimStart());
  19.  
  20.  
  21. var singersSongsAwards = new Dictionary<string, HashSet<string>>();
  22.  
  23. var input = Console.ReadLine().Split(",".ToCharArray()
  24. , StringSplitOptions.RemoveEmptyEntries).ToList();
  25.  
  26. while (input[0] != "dawn")
  27. {
  28. var singer = input[0];
  29. var song = input[1].TrimStart();
  30. var award = input[2].TrimStart();
  31.  
  32. if (singers.Contains(singer) && songs.Contains(song))
  33. {
  34. if (!singersSongsAwards.ContainsKey(singer))
  35. {
  36. singersSongsAwards.Add(singer, new HashSet<string>());
  37. }
  38.  
  39. singersSongsAwards[singer].Add(award);
  40.  
  41.  
  42. }
  43.  
  44. input = Console.ReadLine().Split(",".ToCharArray()
  45. , StringSplitOptions.RemoveEmptyEntries).ToList();
  46. }
  47.  
  48. if (singersSongsAwards.Count == 0)
  49. {
  50. Console.WriteLine("No awards");
  51. return;
  52. }
  53.  
  54. foreach (var users in singersSongsAwards.OrderByDescending(s => s.Value.Count).ThenBy(x => x.Key))
  55. {
  56. Console.WriteLine($"{users.Key}: {users.Value.Count()} awards");
  57.  
  58. foreach (var item in users.Value.OrderBy(x => x))
  59. {
  60. Console.WriteLine("--{0}", item);
  61.  
  62. }
  63.  
  64. }
  65. }
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement