Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- best_user = ""
- best_points = -sys.maxsize
- def find_user_points(user):
- global submissions, users
- user_subs = []
- if user not in users:
- return user_subs
- for idx in range(len(submissions)):
- current = submissions[idx]
- if current["username"] == user:
- user_subs.append( current["points"])
- return user_subs
- def find_best_user():
- global users, best_points, best_user
- for usr in users:
- candidate = sum(find_user_points(usr))
- if candidate > best_points:
- best_user = usr
- best_points = candidate
- def find_user_submissions(usr):
- global users, submissions
- usr_submissions = []
- if usr not in users:
- return usr_submissions
- for idx in range(len(submissions)):
- current = submissions[idx]
- if current["username"] == usr:
- usr_submissions.append(current)
- return usr_submissions
- contests = {}
- submissions = []
- users = []
- found = False
- entry = input()
- while entry != "end of contests":
- contest, password = entry.split(":")
- if contest not in contests:
- contests[contest] = password
- entry = input()
- entry = input()
- while entry != "end of submissions":
- contest, password, username, points = entry.split("=>")
- points = int(points)
- if contest not in contests or contests[contest] != password:
- entry = input()
- continue
- index = 0
- while index < len(submissions):
- current_submission = submissions[index]
- if current_submission["username"] == username and current_submission["contest"] == contest:
- found = True
- if current_submission["points"] < points:
- submissions[index]["points"] = points
- index += 1
- if not found:
- submissions.append({"username": username, "contest": contest, "points": points})
- if username not in users:
- users.append(username)
- found = False
- entry = input()
- find_best_user()
- print(f"Best candidate is {best_user} with total {best_points} points.\nRanking:")
- for usr in sorted(users):
- usr_subs = find_user_submissions(usr)
- print(f"{usr}")
- for contest in sorted(usr_subs, key=lambda x: x["points"], reverse=True):
- print(f"# {contest['contest']} -> {contest['points']}")
- # print(submissions)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement