제출 #381239

#제출 시각아이디문제언어결과실행 시간메모리
381239limabeansGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++17
100 / 100
34 ms7268 KiB
#include <bits/stdc++.h>
using namespace std;

template<typename T>
void out(T x) { cout << x << endl; exit(0); }
#define watch(x) cout << (#x) << " is " << (x) << endl





using ll = long long;


const int maxn = 1e6 + 5;


int n;
ll a[maxn];

int main() {
    ios_base::sync_with_stdio(false); cin.tie(0);  cout.tie(0);

    cin>>n;

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

    a[n+1]=a[0]=0;

    vector<ll> d;
    for (int i=1; i<=n+1; i++) {
	d.push_back(a[i]-a[i-1]);
    }

    // iterate over last positive number
    n = d.size();
    vector<ll> suf(n+10);
    for (int i=n-1; i>=0; i--) {
	suf[i]=suf[i+1];
	if (d[i]>=0) {
	    suf[i] += (d[i]+1);
	}
    }

    ll res = 1e18;
    ll pre = 0;
    for (int i=0; i<n; i++) {
	if (d[i]<=0) {
	    pre += (abs(d[i])+1);
	}
	ll cur = max(pre,suf[i+1]);
	res = min(res, cur);
    }
    
    out(res);    
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...