Submission #1343164

#TimeUsernameProblemLanguageResultExecution timeMemory
1343164NipphitchGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++20
100 / 100
18 ms5124 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
template <class T> using Tree=tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;
#define int long long 
const int N=2e5+5;
const int INF=1e15+7;

int n,a[N],dpl[N],dpr[N],ans=INF;

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n;
    for(int i=1;i<=n;i++) cin >> a[i];
    for(int i=2;i<=n;i++){
        dpl[i]=dpl[i-1];
        if(a[i]<=a[i-1]) dpl[i]+=(a[i-1]-a[i]+1);
    }
    for(int i=n-1;i>=1;i--){
        dpr[i]=dpr[i+1];
        if(a[i]<=a[i+1]) dpr[i]+=(a[i+1]-a[i]+1);
    }
    //cout << "\n";
    //for(int i=1;i<=n;i++) cout << dpl[i] << " ";
    //cout << "\n";
    //for(int i=1;i<=n;i++) cout << dpr[i] << " ";
    for(int i=1;i<=n;i++){
        //int sum=dpl[i-1]+dpr[i+1];
        //cout << sum << " : " << max(0LL,min(a[i-1],a[i+1])-a[i]) << "\n";
        //sum-=max(0LL,min(a[i-1],a[i+1])-a[i]);
        ans=min(ans,max(dpl[i],dpr[i]));
    }
    //cout << "\n";
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...