Advertisement
Guest User

Messages_Manager

a guest
Mar 29th, 2020
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Messages_Manager
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. int capacity = int.Parse(Console.ReadLine());
  12. Dictionary<string, int[]> usersMessages = new Dictionary<string, int[]>();
  13.  
  14. string input = Console.ReadLine();
  15.  
  16. while (input != "Statistics")
  17. {
  18. string[] token = input.Split("=");
  19. string command = token[0];
  20.  
  21. if (command == "Add")
  22. {
  23. string username = token[1];
  24. int sent = int.Parse(token[2]);
  25. int received = int.Parse(token[3]);
  26.  
  27. if (!usersMessages.ContainsKey(username))
  28. {
  29. usersMessages[username] = new int[2] { sent, received };
  30. }
  31. }
  32. else if (command == "Message")
  33. {
  34. string sender = token[1];
  35. string receiver = token[2];
  36.  
  37. if(usersMessages.ContainsKey(sender) && usersMessages.ContainsKey(receiver))
  38. {
  39. usersMessages[sender][0]++;
  40. usersMessages[receiver][1]++;
  41. }
  42.  
  43. if(usersMessages[sender][0] + usersMessages[sender][1] >= capacity)
  44. {
  45. Console.WriteLine($"{sender} reached the capacity!");
  46. usersMessages.Remove(sender);
  47. }
  48.  
  49. if(usersMessages[receiver][0] + usersMessages[receiver][1] >= capacity)
  50. {
  51. Console.WriteLine($"{receiver} reached the capacity!");
  52. usersMessages.Remove(receiver);
  53. }
  54. }
  55. else if (command == "Empty")
  56. {
  57. string username = token[1];
  58.  
  59. if(username == "All")
  60. {
  61. usersMessages.Clear();
  62. }
  63. else
  64. {
  65. if (usersMessages.ContainsKey(username))
  66. {
  67. usersMessages.Remove(username);
  68. }
  69. }
  70. }
  71.  
  72. input = Console.ReadLine();
  73. }
  74.  
  75. Console.WriteLine($"Users count: {usersMessages.Count}");
  76.  
  77. usersMessages = usersMessages
  78. .OrderByDescending(x => x.Value[1])
  79. .ThenBy(x => x.Key)
  80. .ToDictionary(x => x.Key, x => x.Value);
  81.  
  82. foreach (var kvp in usersMessages)
  83. {
  84.  
  85. Console.WriteLine($"{kvp.Key} - {kvp.Value[0] + kvp.Value[1]}");
  86. }
  87. }
  88. }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement