求助,全部超时
查看原帖
求助,全部超时
1019243
geeklab楼主2024/5/11 10:40

求助,全部超时

day = int(input())
v1, v3, v7, v30, v120, v365 = map(int, input().split())
sign = []
for i in range(day):
    sign.append(int(input()))

counters = []
counter = 0
for j in sign:
    if j == 1:
        counter += 1
    elif j == 0:
        counters.append(counter)
        counter = 0
        continue
counters.append(counter)

def count(n):
    if n in range(1, 3):
        return n*v1
    elif n in range(3, 7):
        return 2*v1 + (n-2)*v3
    elif n in range(7, 30):
        return 2*v1 + 4*v3 + v7*(n-6)
    elif n in range(30, 120):
        return 2*v1 + 4*v3 + 23*v7 + v30*(n-29)
    elif n in range(120, 365):
        return 2*v1 + 4*v3 + 23*v7 + v30*90 + v120*(n-119)
    elif n >= 365:
        return 2*v1 + 4*v3 + 23*v7 + v30*90 + v120*245 + v365(n-364)
    else:
        return 0
re = 0
for j in counters:
    re += count(j)

print(re)
2024/5/11 10:40
加载中...