Advertisement
malixds_

Untitled

Sep 12th, 2022
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. from dataclasses import dataclass
  2. import functools
  3.  
  4. @dataclass
  5. class Person:
  6. name: str
  7. discipline: str
  8. perf_cnt: int
  9. penalty: int
  10.  
  11. def cmp(a, b):
  12. if a.perf_cnt > b.perf_cnt:
  13. return True
  14. if a.perf_cnt < b.perf_cnt:
  15. return False
  16. if a.perf_cnt == b.perf_cnt:
  17. if a.penalty < b.penalty:
  18. return True
  19. return False
  20.  
  21.  
  22. def solve():
  23. n = int(input())
  24. dispciplines_info = {}
  25. ans = []
  26. for i in range(n):
  27. tmp = input()
  28. d = ""
  29. numb = ""
  30. d, numb = tmp.split(",")
  31.  
  32. dispciplines_info[d] = int(numb)
  33.  
  34. k = int(input())
  35. discipline_candidates = {}
  36. for i in range(k):
  37. tmp = input()
  38. name, discipline, perf_cnt, penalty = tmp.split(",")
  39. tmp_Person = Person(name, discipline, int(perf_cnt), int(penalty))
  40. if tmp_Person.discipline not in discipline_candidates:
  41. discipline_candidates[tmp_Person.discipline] = []
  42. discipline_candidates[tmp_Person.discipline].append(tmp_Person)
  43.  
  44. for d in discipline_candidates:
  45. discipline_candidates[d] = sorted(discipline_candidates[d], key=functools.cmp_to_key(cmp))
  46.  
  47. for d in dispciplines_info:
  48. for i in range(min(dispciplines_info[d], len(discipline_candidates[d]))):
  49. ans.append(discipline_candidates[d][i].name)
  50.  
  51. ans = sorted(ans)
  52. print(ans)
  53.  
  54. solve()
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement