198372025-12-25 10:57:24KristófSípálya (55 pont)cpp17Accepted 55/55118ms8112 KiB
#include <iostream>
#include <vector>
#include <map>
#include <set>
using namespace std;

int main()
{
    int n;
    long long k;
    cin>>n>>k;
    vector<int> nums(n);
    multiset<int> maxk;
    map<int,int> lastseen;
    for(int & x:nums)cin>>x;
    int j=0;
    long long sum=0;
    int i=0;
    for(;i<k;i++)
        {
        maxk.insert(nums[i]+i);
        sum+=nums[i];
        }
    long long sv=*maxk.rbegin()-j;

    long long ans=(sv+sv-k+1)*k/2-sum;
    //cout<<ans;
    while(i<n)
        {
        maxk.erase(maxk.find(nums[j]+j));
        maxk.insert(nums[i]+i);
        sum-=nums[j];
        j++;
        sum+=nums[i];
        sv=*maxk.rbegin()-j;
        ans=min(ans,(sv+sv-k+1)*k/2-sum);
        //cout<<i<<" "<<j<<"\n";
        i++;
        }
    cout<<ans;

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms508 KiB
2Accepted0/01ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/22ms316 KiB
5Accepted2/22ms384 KiB
6Accepted2/22ms316 KiB
7Accepted3/32ms316 KiB
8Accepted1/17ms456 KiB
9Accepted1/17ms456 KiB
10Accepted1/16ms316 KiB
11Accepted1/16ms524 KiB
12Accepted1/16ms484 KiB
13Accepted1/16ms564 KiB
14Accepted2/26ms564 KiB
15Accepted2/26ms456 KiB
16Accepted2/2108ms1448 KiB
17Accepted2/2118ms5808 KiB
18Accepted2/2116ms6308 KiB
19Accepted3/3115ms8112 KiB
20Accepted2/2115ms1968 KiB
21Accepted2/2109ms1704 KiB
22Accepted2/2111ms1700 KiB
23Accepted2/2112ms1448 KiB
24Accepted2/2116ms1708 KiB
25Accepted2/2115ms2100 KiB
26Accepted2/2115ms2224 KiB
27Accepted2/2112ms2480 KiB
28Accepted3/3112ms2356 KiB
29Accepted3/3114ms2732 KiB
30Accepted3/3115ms2988 KiB