#45857: 求援助(0%)(內附詳細程式碼說明)


linswater (linswater)

學校 : 國立武陵高級中學
編號 : 297974
來源 : [36.224.93.12]
最後登入時間 :
2025-10-05 16:14:00

請問為什麼我用題目附的測資都對,但跑出來卻是0%

n,k = list(map(int,input().split()))
date = list(map(int,input().split()))
piece = []
a = [date[0]]
door = 0     # 避免有連續負數時,切割會出現空串列
#將收益已負數為切點切成數塊e.g.    3, 1, -2, 3, -2 ,3, -5, 2, 2   =>  [[3, 1], [-2, 3], [-2, 3], [-5, 2, 2]]
for i in range(1,n):
    if date[i] < 0 :
        if door == 0:
            piece.append(a)
            a = [date[i]]
            door = 1
    else:
        a.append(date[i])
        door = 0
piece.append(a)
#----------------------------------
# 用迴圈計算 第一次先只選取piece的第一項把項目放進shelter,用金磚依次排除掉最大負數,再計算總合加入ans。 第二次選取piece的第一二項把項目放進     shelter,接下來一樣的處理方法。接下來以此類推
ans = []
for out in range(len(piece)):
    shelter = []
    for inside in range(out+1):
        for i in piece[inside]:
            shelter.append(i)
    shelter.sort()
    for j in range(k):
        if len(shelter) != 0:
            if shelter[0] < 0:
                shelter.pop(0)
            else:
                break
    ans.append(sum(shelter))
#-----------------------------------
if len(ans) == 0 or max(ans) < 0:
    print(0)
else:
    print(max(ans))