Advertisement
Guest User

Untitled

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