Submission #1162385

#TimeUsernameProblemLanguageResultExecution timeMemory
1162385AlgorithmWarriorGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++20
100 / 100
54 ms4180 KiB
#include <bits/stdc++.h>

using namespace std;

long long const INF=1e18;
int const MAX=2e5+5;
int v[MAX];
long long sum1[MAX],sum2[MAX];
int n;

void read(){
    cin>>n;
    int i;
    for(i=1;i<=n;++i)
        cin>>v[i];
}

void precalc(){
    int i;
    for(i=2;i<=n;++i)
        sum1[i]=sum1[i-1]+((v[i-1]>=v[i])?v[i-1]-v[i]+1:0);
    for(i=n-1;i;--i)
        sum2[i]=sum2[i+1]+((v[i]<=v[i+1])?v[i+1]-v[i]+1:0);
}

void minself(long long& x,long long val){
    if(x>val)
        x=val;
}

long long solve(){
    long long ans=INF;
    int i;
    for(i=1;i<=n;++i)
        minself(ans,max(sum1[i],sum2[i]));
    return ans;
}

int main()
{
    read();
    precalc();
    cout<<solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...