194792025-12-10 16:08:36birozsSípálya (55 pont)pypy3Time limit exceeded 43/55504ms47956 KiB
N,K=map(int,input().split())
T = list(map(int,input().split()))
fold = 0
m = T[0]
for i in range(1,K):
    if T[i] > m - 1:
        fold += (T[i] - (m-1)) * i
        m = T[i]
    else:
        fold += m - 1 - T[i]
        m = m - 1
min = N * 10**9
for i in range(1,N-K+1):
    if T[i-1] < m + K - 1: 
        fold -= m + K - 1 - T[i-1]
        if T[i+K-1] < m:
            m = m - 1
            fold += m - T[i+K-1]
        else:
            fold += (K - 1) * (T[i+K-1] - m + 1)
            m = T[i+K-1]
    else:
        fold = 0
        m = T[i]
        for j in range(i,i+K):
            if T[j] > m - 1:
                fold += (T[j] - (m-1)) * (j-i)
                m = T[j]
            else:
                fold += m - 1 - T[j]
                m = m - 1
    if fold < min:
        min = fold
print(min)


    

SubtaskSumTestVerdictTimeMemory
base43/55
1Accepted0/043ms19600 KiB
2Accepted0/043ms19676 KiB
3Accepted2/245ms21160 KiB
4Accepted2/245ms21256 KiB
5Accepted2/246ms21412 KiB
6Accepted2/248ms21320 KiB
7Accepted3/346ms21220 KiB
8Accepted1/157ms21756 KiB
9Accepted1/159ms21948 KiB
10Accepted1/159ms22384 KiB
11Accepted1/198ms22348 KiB
12Accepted1/192ms22176 KiB
13Accepted1/1137ms22408 KiB
14Accepted2/2119ms22372 KiB
15Accepted2/289ms22136 KiB
16Time limit exceeded0/2504ms46772 KiB
17Accepted2/297ms46696 KiB
18Accepted2/2112ms46700 KiB
19Accepted3/3112ms47868 KiB
20Accepted2/2323ms47868 KiB
21Time limit exceeded0/2504ms46704 KiB
22Time limit exceeded0/2495ms46628 KiB
23Time limit exceeded0/2488ms47872 KiB
24Time limit exceeded0/2486ms47956 KiB
25Accepted2/2365ms47872 KiB
26Time limit exceeded0/2407ms47872 KiB
27Accepted2/2282ms46684 KiB
28Accepted3/3226ms46692 KiB
29Accepted3/3365ms46688 KiB
30Accepted3/3112ms47872 KiB