Advertisement
bullit3189

Concert - Dictionaries

Apr 1st, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4. using System.Text.RegularExpressions;
  5. using System.Text;
  6.  
  7. public class Program
  8. {
  9. public static void Main()
  10. {
  11. Dictionary<string,int> bandTime = new Dictionary<string,int>();
  12. Dictionary<string,List<string>> bandMembers = new Dictionary<string,List<string>>();
  13.  
  14. while (true)
  15. {
  16. string command = Console.ReadLine();
  17.  
  18. if (command == "start of concert")
  19. {
  20. break;
  21. }
  22.  
  23. string[] tokens = command.Split("; ");
  24.  
  25. string action = tokens[0];
  26.  
  27. if (action == "Play")
  28. {
  29. string bandName = tokens[1];
  30. int time = int.Parse(tokens[2]);
  31.  
  32. if (!bandTime.ContainsKey(bandName))
  33. {
  34. bandTime.Add(bandName,time);
  35. }
  36. else
  37. {
  38. bandTime[bandName]+=time;
  39. }
  40.  
  41. if (!bandMembers.ContainsKey(bandName))
  42. {
  43. bandMembers.Add(bandName,new List<string>());
  44. }
  45. }
  46. else
  47. {
  48. string bandName = tokens[1];
  49.  
  50. if (!bandTime.ContainsKey(bandName))
  51. {
  52. bandTime.Add(bandName,0);
  53. }
  54.  
  55. if (!bandMembers.ContainsKey(bandName))
  56. {
  57. bandMembers.Add(bandName,new List<string>());
  58. }
  59. string[] members = tokens[2].Split(", ");
  60.  
  61. List<string> membersOfBand = new List<string>();
  62.  
  63. foreach (string member in members)
  64. {
  65. membersOfBand.Add(member);
  66. }
  67.  
  68. foreach (string member in membersOfBand)
  69. {
  70. if (!bandMembers[bandName].Contains(member))
  71. {
  72. bandMembers[bandName].Add(member);
  73. }
  74. }
  75.  
  76. membersOfBand.Clear();
  77. }
  78. }
  79.  
  80. int totalTime =0;
  81.  
  82. foreach (var kvp in bandTime)
  83. {
  84. int time = kvp.Value;
  85.  
  86. totalTime+=time;
  87. }
  88.  
  89. Console.WriteLine("Total time: {0}",totalTime);
  90.  
  91. foreach (var kvp in bandTime.OrderByDescending(x=>x.Value).ThenBy(x=>x.Key))
  92. {
  93. Console.WriteLine("{0} -> {1}",kvp.Key,kvp.Value);
  94. }
  95.  
  96. string finalInput = Console.ReadLine();
  97.  
  98. var filtered = bandMembers.Where(x=>x.Key==finalInput);
  99.  
  100. Console.WriteLine("{0}",finalInput);
  101.  
  102. foreach (var kvp in filtered)
  103. {
  104. List<string> members = kvp.Value;
  105.  
  106. foreach (var member in members)
  107. {
  108. Console.WriteLine("=> {0}",member);
  109. }
  110. }
  111. }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement