GalinaKG

Judge - More exercise

Jul 10th, 2022
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.14 KB | None | 0 0
  1. data = {}
  2. students_points = {}
  3.  
  4. while True:
  5.     command = input()
  6.  
  7.     if command == 'no more time':
  8.         break
  9.  
  10.     username, contest, points = command.split(' -> ')
  11.     points = int(points)
  12.  
  13.     if contest not in data:
  14.         data[contest] = {}
  15.  
  16.     if username not in data[contest]:
  17.         data[contest][username] = points
  18.  
  19.         if username not in students_points:
  20.             students_points[username] = points
  21.         else:
  22.             students_points[username] += points
  23.     else:
  24.         if data[contest][username] < points:
  25.             data[contest][username] = points
  26.             students_points[username] = points
  27.  
  28. for k, v in data.items():
  29.     number = 1
  30.     print(f'{k}: {len(v)} participants')
  31.     sorted_data = dict(sorted(v.items(), key=lambda x: (-x[1], x[0])))
  32.     for k2, v2 in sorted_data.items():
  33.         print(f'{number}. {k2} <::> {v2}')
  34.         number += 1
  35. print('Individual standings:')
  36. sorted_students_points = sorted(students_points.items(), key=lambda kvpt: (-kvpt[1], kvpt[0]))
  37. number = 1
  38. for name, points in sorted_students_points:
  39.     print(f'{number}. {name} -> {points}')
  40.     number += 1
Advertisement
Add Comment
Please, Sign In to add comment