Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _1.String_Manipulator
- {
- class Program
- {
- static void Main(string[] args)
- {
- int capacity = int.Parse(Console.ReadLine());
- Dictionary<string, int> messagesSent = new Dictionary<string, int>();
- Dictionary<string, int> messagesReceived = new Dictionary<string, int>();
- string input = "";
- while ((input = Console.ReadLine()) != "Statistics")
- {
- var data = input.Split("=").ToList();
- string command = data[0];
- if (command == "Add")
- {
- string username = data[1];
- int sent = int.Parse(data[2]);
- int received = int.Parse(data[3]);
- if (!messagesSent.ContainsKey(username))
- {
- messagesSent.Add(username, sent);
- }
- if (!messagesReceived.ContainsKey(username))
- {
- messagesReceived.Add(username, received);
- }
- }
- else if (command == "Message")
- {
- string sender = data[1];
- string receiver = data[2];
- if (messagesSent.ContainsKey(sender) && messagesReceived.ContainsKey(receiver))
- {
- messagesSent[sender]++;
- messagesReceived[receiver]++;
- if ((messagesSent[sender] + messagesReceived[sender]) >= capacity)
- {
- Console.WriteLine($"{sender} reached the capacity!");
- messagesSent.Remove(sender);
- messagesReceived.Remove(sender);
- }
- if (messagesSent[receiver] + messagesReceived[receiver] >= capacity)
- {
- Console.WriteLine($"{receiver} reached the capacity!");
- messagesSent.Remove(receiver);
- messagesReceived.Remove(receiver);
- }
- }
- }
- else
- {
- string username = data[1];
- if (messagesSent.ContainsKey(username) && messagesReceived.ContainsKey(username))
- {
- messagesReceived.Remove(username);
- messagesSent.Remove(username);
- }
- if (username == "All")
- {
- messagesSent.Clear();
- messagesReceived.Clear();
- }
- }
- }
- var totalMessages = new Dictionary<string, int>();
- Console.WriteLine($"Users count: {messagesSent.Keys.Count}");
- foreach (var message in messagesReceived.OrderByDescending(message => message.Value).ThenBy(message => message.Key))
- {
- string user = message.Key;
- int receivedMessagesPerUser = message.Value;
- int sentMessagesPerUser = messagesSent[user];
- int sum = sentMessagesPerUser + receivedMessagesPerUser;
- Console.WriteLine($"{user} - {sum}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment