样例输入 1
3 2 1 2 3
样例输出 1
9
样例输入 2
4 6 1000000000 1000000000 1000000000 1000000000
样例输出 2
12000000000
思路解析:
解决一个列表每个元素间隔空格同行输入(可以参考我的另一篇文章)就解决一半了,再者就是将每一个精彩度读入列表,记着千万不要想着去重,题目中没有强调就不要用集合去重,最后排序,注意是升序(介绍排序的也有介绍),也可以是默认的降序,但是比较麻烦罢了,再求和即可
代码如下:
#C1067 [Contest #3]比赛.py
N,K = map(int,input().split())
ls = list()
lt = list()
brilliance = 0 #定义精彩度为0
#列表空格间隔输入
'''
s = input()
items = s.split(" ")
ls = [eval(i) for i in items]
'''
#上面三行等价于下面一行,即简化后
ls = [eval(i) for i in input().split(" ")]
for i in range(N): #每一只小猫与其后的每一只小猫比赛的精彩度计入列表lt
for j in range(i+1,N):
if i != N - 1:
t = ls[i] + ls[j]
lt.append(t)
lt.sort(reverse = True) #排序,降序排列,默认为升序
for i in range(K): #求和前K大的每个数
brilliance += lt[i]
print(brilliance)