Advertisement
simeonshopov

2. Judge

Feb 6th, 2020
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. contests = {}
  2. order_cons = []
  3. individuals = {}
  4.  
  5.  
  6. def manage_input(con: str, cons: dict, us: str, pts: int):
  7.     if us not in individuals:
  8.         individuals.update({us: pts})
  9.     elif us in individuals:
  10.         if con not in cons:
  11.             cons[con] = {}
  12.         if us not in cons[con]:
  13.             individuals[us] += pts
  14.         else:
  15.             if pts > individuals[us]:
  16.                 individuals[us] = pts
  17.     if con not in cons:
  18.         cons[con] = {us: pts}
  19.         order_cons.append(con)
  20.     elif con in cons:
  21.         if us not in cons[con]:
  22.             cons[con].update({us: pts})
  23.         else:
  24.             if pts > cons[con][us]:
  25.                 cons[con][us] = pts
  26.  
  27.  
  28.  
  29.  
  30. while True:
  31.     data = input()
  32.     if data == 'no more time':
  33.         break
  34.     data = data.split(' -> ')
  35.     user = data[0]
  36.     contest = data[1]
  37.     points = int(data[2])
  38.     manage_input(contest, contests, user, points)
  39.  
  40.  
  41. for i in contests:
  42.     print(f'{i}: {len(contests[i])} participants')
  43.     order = sorted(sorted(contests[i], key=lambda _: _), key=lambda _: contests[i][_], reverse=True)
  44.     for x in range(1, len(order) + 1):
  45.         stuff = order[x - 1]
  46.         print(f'{x}. {stuff} <::> {contests[i][stuff]}')
  47. print('Individual standings:')
  48. individual_order = sorted(sorted(individuals, key=lambda _: _), key=lambda _: individuals[_], reverse=True)
  49. [print(f'{x}. {individual_order[x - 1]}'
  50.        f' -> {individuals[individual_order[x - 1]]}') for x in range(1, len(individual_order) + 1)]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement