Submission #1148595

#TimeUsernameProblemLanguageResultExecution timeMemory
1148595WH8Growing Vegetables is Fun 4 (JOI21_ho_t1)C++20
0 / 100
1 ms328 KiB
#include <bits/stdc++.h>

using namespace std;
#define int long long 
#define f first
#define s second
#define pb push_back
#define ld long double
#define pll pair<int, int>

signed main(){
	int n; 
	cin >> n;
	int a[n], b[n], v[n], at[n], bt[n], pu, pv; 
	for(int i=0;i<n;i++){
		a[i]=b[i]=0;
		cin>>v[i];
	}
	pu=0,pv=v[0],at[0]=v[0];
	for(int i=1;i<n;i++){
		int t=pv+1;
		if(t<v[i] + pu){
			pv=v[i]+pu;
			a[i]=pu;
			at[i]=pv;
			continue;
		}
		pu+=max(0ll, t-v[i]-pu);
		a[i]=pu;
		pv = t;
		at[i]=pv;
	}
	pu=0,pv=v[n-1],bt[n-1]=v[n-1];
	for(int i=n-2;i>=0;i--){
		int t=pv+1;
		if(t<v[i] + pu){
			pv=v[i]+pu;
			b[i]=pu;
		}
		else{
			pu+=max(0ll, t-v[i]-pu);
			b[i]=pu;
			pv = t;
		}
		bt[i]=pv;
	}
	//~ for(int i=0;i<n;i++){
		//~ cout<<a[i]<<" "<<b[i]<<"  "<<at[i]<<" "<<bt[i]<<endl;
	//~ }
	int ans=1e9;
	for(int i=0;i<n;i++){
		ans=min(ans,max(a[i],b[i]));
		
	}
	cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...