Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def update_judge(user, contest, points):
- global judge, users
- user_idx = -1
- for idx in range(len(judge)):
- if judge[idx]["user"] == user and judge[idx]["contest"] == contest:
- user_idx = idx
- break
- if user_idx == -1:
- judge.append({"user": user, "contest": contest, "points": points})
- else:
- if judge[user_idx]["points"] < points:
- judge[user_idx]["points"] = points
- if contest not in contests:
- contests.append(contest)
- if user not in users:
- users.append(user)
- def get_contest_users(contest):
- global judge
- arr = []
- for index in range(len(judge)):
- current = judge[index]
- if current["contest"] == contest:
- arr.append(current)
- return arr
- def get_user_points(usr):
- global judge
- pts = 0
- for idx in range(len(judge)):
- if judge[idx]["user"] == usr:
- pts += judge[idx]["points"]
- return pts
- def get_contests():
- global judge, contests
- arr = []
- for contest in contests:
- for idx in range(len(judge)):
- if judge[idx]["contest"] == contest:
- i = -1
- for ii in range(len(arr)):
- if arr[ii]["contest"] == contest:
- i = ii
- break
- if i == -1:
- arr.append({"contest": contest, "points": judge[idx]["points"]})
- else:
- arr[i]["points"] += judge[idx]["points"]
- return arr
- judge = []
- contests = []
- users = []
- entry = input()
- while entry != "no more time":
- user, contest, points = entry.split(" -> ")
- points = int(points)
- update_judge(user, contest, points)
- entry = input()
- for result in get_contests():
- contest_results = get_contest_users(result["contest"])
- print(f"{result['contest']}: {len(contest_results)} participants")
- num = 1
- for contest_usr in sorted(contest_results, key=lambda x: (-x["points"], x["user"])):
- print(f"{num}. {contest_usr['user']} <::> {contest_usr['points']}")
- num += 1
- print("Individual standings:")
- num = 1
- # usr_results = [list({usr, get_user_points(usr)}) for usr in users]
- usr_results = []
- for usr in users:
- usr_results.append({"user": usr, "points": get_user_points(usr)})
- for usr in sorted(usr_results, key=lambda x: (-x["points"], x['user'])):
- print(f"{num}. {usr['user']} -> {usr['points']}")
- num += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement