Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Diagnostics;
- namespace CSharpLearningPath
- {
- class Program
- {
- static void Main(string[] args)
- {
- Dictionary<string, List<int>> users = new Dictionary<string, List<int>>();
- int capacity = int.Parse(Console.ReadLine());
- string task;
- while((task = Console.ReadLine()) != "Statistics")
- {
- if(task.StartsWith("Add"))
- {
- string[] info = task.Split("=");
- string user = info[1];
- if(!users.ContainsKey(user))
- {
- int sent = int.Parse(info[2]);
- int received = int.Parse(info[3]);
- users.Add(user, new List<int>());
- users[user].Add(sent);
- users[user].Add(received);
- }
- }
- else if(task.StartsWith("Message"))
- {
- string sender = task.Split("=")[1];
- string receiver = task.Split("=")[2];
- if(users.ContainsKey(sender) && users.ContainsKey(receiver))
- {
- users[sender][0]++;
- users[receiver][1]++;
- if(users[sender][0] + users[sender][1] >= capacity)
- {
- Console.WriteLine($"{sender} reached the capacity!");
- users.Remove(sender);
- }
- if(users[receiver][0] + users[receiver][1] >= capacity)
- {
- Console.WriteLine($"{receiver} reached the capacity!");
- users.Remove(receiver);
- }
- }
- }
- else if(task.StartsWith("Empty"))
- {
- string user = task.Split("=")[1];
- if(user == "All")
- {
- users.Clear();
- }
- else
- {
- if(users.ContainsKey(user))
- {
- users.Remove(user);
- }
- }
- }
- }
- Console.WriteLine($"Users count: {users.Count}");
- users = users.OrderByDescending(k => k.Value[1]).ThenBy(k => k.Key)
- .ToDictionary(k => k.Key, v => v.Value);
- foreach(var user in users)
- {
- Console.WriteLine($"{user.Key} - {user.Value[0] + user.Value[1]}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement