Greedy Algorithms: Luck Balance

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the luckBalance function below.
def luckBalance0(k, contests):
    print(contests)
    imp=[]
    score=0
    for i in range(len(contests)):
        if contests[i][1]==0:
            score+=contests[i][0]
        else:
            imp.append(contests[i][0])
    s=sorted(imp)
    print(s)
    n=len(s)####实际上,重要比赛的数目可能比k小
    score=score+sum(s[n-k:])-sum(s[:n-k])
    return score

def luckBalance(k, contests):
    print(contests)
    imp=[]
    score=0
    for i in range(len(contests)):
        if contests[i][1]==0:
            score+=contests[i][0]
        else:
            imp.append(contests[i][0])
    s=sorted(imp)
    print(s)
    n=len(s)####实际上,重要比赛的数目可能比k小
    if k<=n:
        score=score+sum(s[n-k:])-sum(s[:n-k])
    else:
        score=score+sum(s)
    return score


if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    nk = input().split()

    n = int(nk[0])

    k = int(nk[1])

    contests = []

    for _ in range(n):
        contests.append(list(map(int, input().rstrip().split())))

    result = luckBalance(k, contests)

    fptr.write(str(result) + '\n')

    fptr.close()
发布了163 篇原创文章 · 获赞 90 · 访问量 6274

猜你喜欢

转载自blog.csdn.net/weixin_45405128/article/details/104282414