【Python】Comet OJ C1067 [Contest #3]比賽

樣例輸入 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)


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章