用add维护窗口的总和,每次尽量从窗口最右边的盒子减少,如果不够,就继续往左移,直到满足要求,用res记录操作的次数

虽然比较麻烦,但也是比较神秘地通关了

n,m,x = map(int,input().split())
a = list(map(int,input().split())) + [0]
add = sum(a[:m])
res = 0
for i in range(n-m+1):
    j = i + m - 1
    while add > x:
        mi = min(a[j],add-x)
        a[j] -= mi
        add -= mi
        res += mi
        j -= 1
    add -= a[i]
    add += a[i+m]
print(res)