Advertisement
viligen

judge

Nov 9th, 2021
1,308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.16 KB | None | 0 0
  1. users_points = {}
  2. courses_users = {}
  3.  
  4. while True:
  5.     data = input().split(" -> ")
  6.     if "no more time" in data:
  7.         break
  8.     user, course, points = data
  9.     points = int(points)
  10.  
  11.     if course not in courses_users:
  12.         courses_users[course] = {user: points}
  13.         if user not in users_points:
  14.             users_points[user] = 0
  15.         users_points[user] += points
  16.     elif user not in courses_users[course]:
  17.         courses_users[course].update({user: points})
  18.         if user not in users_points:
  19.             users_points[user] = 0
  20.         users_points[user] += points
  21.     elif courses_users[course][user] < points:
  22.         users_points[user] += (points - courses_users[course][user])
  23.         courses_users[course][user] = points
  24.  
  25. for k, v in courses_users.items():
  26.     print(f"{k}: {len(v)} participants")
  27.     n = 0
  28.     for sub_k, sub_v in sorted(v.items(), key=lambda kvp: (-kvp[1], kvp[0])):
  29.         n += 1
  30.         print(f"{n}. {sub_k} <::> {sub_v}")
  31.  
  32. sorted_users = sorted(users_points.items(), key=lambda kvp: (-kvp[1], kvp[0]))
  33. print("Individual standings:")
  34. n = 0
  35. for k, v in sorted_users:
  36.     n += 1
  37.     print(f"{n}. {k} -> {v}")
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement