Skip to content
On this page

P3_09_BNK48.py

WARNING

โค้ดกาวมากครับ อย่าลอกเลย 😭😭😭

ทำเองเถอะนะครับ จะได้ทำข้อสอบได้ 🥲🥲🥲

py
token = []

voter_推し = {}
member_score = {}
member_voters = {}


def print_top_three(bruh):
    bruh.sort()
    bruh.reverse()
    print("{}, {}, {}".format(bruh[0][1], bruh[1][1], bruh[2][1]))


def rank_by_score():
    bruh = []
    for member, score in member_score.items():
        bruh.append([score, member])

    print_top_three(bruh)


def rank_by_ota_uniq():
    bruh = []

    for member, voters in member_voters.items():
        voters_count = len(voters)
        bruh.append([voters_count, member])

    print_top_three(bruh)


def rank_by_kamioshi():
    member_kamioshi = {}

    for voter, oshis in voter_推し.items():
        kamioshi = None
        kami_score = 0
        for oshi, score in oshis.items():
            if score > kami_score:
                kamioshi = oshi
                kami_score = score
            elif score == kami_score:
                if oshi < kamioshi:
                    kamioshi = oshi

        if kamioshi is not None:
            member_kamioshi[kamioshi] = member_kamioshi.get(kamioshi, 0)
            member_kamioshi[kamioshi] += 1

    for member in member_score.keys():
        if member not in member_kamioshi:
            member_kamioshi[member] = 0

    bruh = []
    for member, kamioshi in member_kamioshi.items():
        bruh.append([kamioshi, member])

    print_top_three(bruh)


while len(token) != 1:
    token = input().split(" ")

    if len(token) == 1:
        if token[0] == "1":
            rank_by_score()
        elif token[0] == "2":
            rank_by_ota_uniq()
        elif token[0] == "3":
            rank_by_kamioshi()
        break

    voter, member, score = token

    member_score[member] = member_score.get(member, 0)
    member_score[member] += int(score)

    member_voters[member] = member_voters.get(member, set())
    member_voters[member].add(voter)

    voter_推し[voter] = voter_推し.get(voter, {})
    voter_推し[voter][member] = voter_推し[voter].get(member, 0)
    voter_推し[voter][member] += int(score)

People who plagiarize Com Prog HW:

People who do Com Prog HW by themself:

Released under the MIT License