7 条题解

  • -2
    @ 2024-6-21 9:18:46

    Python

    m, n = map(int, input().split())
    
    counter = {
        name: int(stars) for name, stars in (input().split() for _ in range(m))
    } # 输入姓名+星数
    
    newdt = sorted(counter.items(), key=lambda item: (-item[1], item[0])) # 根据星数和姓名排序
    
    pre_stars = newdt[0][1] # 记录同排名的星数
    pre_rank = 1 # 记录同排名
    rank = 1 # 记录排名
    sum = 0
    
    for (name, stars) in newdt:
        if stars == pre_stars:
            print(f"{pre_rank}:{name}")
        else:
            print(f"{rank}:{name}")
            pre_stars = stars
            pre_rank = rank
        if n >= pre_rank:
            sum += 1
        rank += 1
    
    print(sum)
    

    信息

    ID
    736
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    603
    已通过
    177
    上传者