viligen

messages_manager

Dec 5th, 2021 (edited)
761
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. capacity = int(input())
  2.  
  3. users = {}
  4.  
  5. while True:
  6.     command = input().split("=")
  7.     if command[0] == "Statistics":
  8.         break
  9.     elif command[0] == "Add":
  10.         name, sent, received = command[1:]
  11.         if name not in users:
  12.             users[name] = {"sent": int(sent), "received": int(received)}
  13.     elif command[0] == "Message":
  14.         sender, receiver = command[1:]
  15.         if sender in users and receiver in users:
  16.             users[sender]['sent'] += 1
  17.             users[receiver]['received'] += 1
  18.             if users[sender]['sent'] + users[sender]['received'] >= capacity:
  19.                 del users[sender]
  20.                 print(f"{sender} reached the capacity!")
  21.             if users[receiver]['sent'] + users[receiver]['received'] >= capacity:
  22.                 del users[receiver]
  23.                 print(f"{receiver} reached the capacity!")
  24.     elif command[0] == "Empty":
  25.         name = command[1]
  26.         if name in users:
  27.             del users[name]
  28.         elif name == "All":
  29.             users = {}
  30.  
  31. sorted_users = sorted(users.items(), key=lambda kvp: (-kvp[1]['received'], kvp[0]))
  32.  
  33. print(f"Users count: {len(users)}")
  34.  
  35. for user, data in sorted_users:
  36.     print(f"{user} - {data['sent'] + data['received']}")
  37.  
Add Comment
Please, Sign In to add comment