Submission #676061

#TimeUsernameProblemLanguageResultExecution timeMemory
676061ToroTNGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++14
0 / 100
1 ms340 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,a[100005],l[100005],r[100005],hl[100005],hr[100005],ans;
int main()
{
    ios_base::sync_with_stdio(0),cin.tie(0);
    cin >> n;
    for(int i=1;i<=n;i++)cin >> a[i];
    l[1]=0,hl[1]=a[1];
    for(int i=2;i<=n;i++)
    {
        if(a[i]>hl[i-1])
        {
            hl[i]=a[i];
            l[i]=l[i-1];
        }else
        {
            hl[i]=hl[i-1]+1;
            l[i]=l[i-1]+hl[i]-a[i];
        }
    }
    r[n]=0,hr[n]=a[n];
    for(int i=n-1;i>=1;i--)
    {
        if(a[i]>hr[i+1])
        {
            hr[i]=a[i];
            r[i]=r[i+1];
        }else
        {
            hr[i]=hr[i+1]+1;
            r[i]=r[i+1]+hr[i]-a[i];
        }
    }
    /*for(int i=1;i<=n;i++)
    {
        printf("%d ",l[i]);
    }
    printf("\n");
    for(int i=1;i<=n;i++)
    {
        printf("%d ",r[i]);
    }
    printf("\n");*/
    ans=min(hl[n]-hl[1],hr[1]-hr[n]);
    for(int i=1;i<n;i++)ans=min(ans,hl[i]+hr[i+1]-hl[1]-hr[n]);
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...