【競プロ典型90問】「048 - I will not drop out(★3)」解法
Free-PhotosによるPixabayからの画像

このシリーズではE869120さんによって作成された競プロ典型90問をPythonで解いています。

問題

048 - I will not drop out(★3)

ポイント

貪欲法で点数の高い順に取っていきます。

コード

def main():
    import sys
    sys.setrecursionlimit(10 ** 9)
    input = sys.stdin.readline

    N, K = map(int, input().split(" "))
    scores = []
    for _ in range(N):
        _A, _B = map(int, input().split(" "))
        scores.append(_B)  # 部分点
        scores.append(_A - _B)  # 満点-部分点

    scores.sort(reverse=True)
    ans = 0
    for i in range(K):
        ans += scores[i]

    print(ans)


if __name__ == '__main__':
    main()

おすすめの記事