【kickstart round A 2019】第一题Training Python题解

题目
教练从N个学生中挑选P个学生,并对之训练使P个同学技能值全部相同。

解题思路:
排序后,计算前缀和

代码:

T=int(input())

for tt in range(T):
    N,P=[int(s) for s in input().split()]
    students=[int(s) for s in input().split()]
    students.sort()
    pre_sum=[0]
    for i in students:
        pre_sum.append(pre_sum[-1]+i)
    ans=float('inf')
    for i in range(N-P+1):
        loc1=i
        loc2=i+P
        rec=P*students[loc2-1]-(pre_sum[loc2]-pre_sum[loc1])
        ans=min(ans,rec)
    print('Case #{}: {}'.format(tt+1,ans))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值