Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Messages_Manager
- {
- class Program
- {
- static void Main(string[] args)
- {
- var sentMessages = new Dictionary<string, int>();
- var receivedMessages = new Dictionary<string, int>();
- int capacity = int.Parse(Console.ReadLine());
- while (true)
- {
- string text = Console.ReadLine();
- if (text == "Statistics")
- {
- break;
- }
- else
- {
- string[] data = text
- .Split("=", StringSplitOptions.RemoveEmptyEntries);
- string command = data[0];
- string name = data[1];
- if (command == "Add")
- {
- int sent = int.Parse(data[2]);
- int receive = int.Parse(data[3]);
- if (!sentMessages.ContainsKey(name))
- {
- sentMessages[name] = sent;
- receivedMessages[name] = receive;
- }
- }
- else if (command == "Message")
- {
- string receiveName = data[2];
- if (sentMessages.ContainsKey(name) & receivedMessages.ContainsKey(receiveName))
- {
- sentMessages[name]++;
- if ((sentMessages[name] + receivedMessages[name]) >= capacity)
- {
- sentMessages.Remove(name);
- receivedMessages.Remove(name); //sentMessages[name] = 0;
- Console.WriteLine($"{name} reached the capacity!");
- }
- receivedMessages[receiveName]++;
- if ((receivedMessages[receiveName] + sentMessages[receiveName]) >= capacity)
- {
- sentMessages.Remove(receiveName);
- receivedMessages.Remove(receiveName);
- Console.WriteLine($"{receiveName} reached the capacity!");
- }
- }
- }
- else if (command == "Empty")
- {
- if (sentMessages.ContainsKey(name))
- {
- sentMessages.Remove(name);
- receivedMessages.Remove(name);
- }
- else if (name == "All")
- {
- sentMessages.Clear();
- receivedMessages.Clear();
- }
- }
- }
- }
- receivedMessages = receivedMessages
- .OrderByDescending(x => x.Value)
- .ThenBy(x => x.Key)
- .ToDictionary(x => x.Key, y => y.Value);
- Console.WriteLine($"Users count: {sentMessages.Count}");
- foreach (var kvp in receivedMessages)
- {
- string currentUsername = kvp.Key;
- int currentSentMessages = sentMessages[currentUsername];
- int totalMessages = currentSentMessages + kvp.Value;
- Console.WriteLine($"{kvp.Key} - {totalMessages}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment