Submission #1156175

#TimeUsernameProblemLanguageResultExecution timeMemory
1156175NurislamGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
//#define all(x) x.begin(),x.end()
//#define rall(x) x.rbegin(),x.rend()
//#define ff first
//#define ss second
//#define pb push_back
//template<class T, class U> inline bool chmin(T& a, const U& b) { if (a > b) { a = b; return true; } return false; }
//template<class T, class U> inline bool chmax(T& a, const U& b) { if (a < b) { a = b; return true; } return false; }
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
//#define rnd(l, r) uniform_int_distribution <int> (l, r)(rng)

const int inf = 1e6, mod = 1e9 + 7;

void solve(){
	int n;
	cin >> n;
	vector<int> a(n);
	for(int &i : a)cin >> i;
	
	if(n == 1){
		cout << 0 << '\n';
		return;
	}
	
	int l = 1, r = n-2, ans = 0;
	while(1){
		if(l == r+1 && a[l] == a[r]){ans ++ ;break;}
		if(l > r)break;
		
		int lf = a[l-1] - a[l] + 1;
		int ri = a[r+1] - a[r] + 1;
		
		if(lf <= 0){l ++; continue;}
		if(ri <= 0){r --; continue;}
		
		if(lf < ri){
			a[l] += lf;
			a[r] += lf;
			ans += lf;
		}else{
			a[l] += ri;
			a[r] += ri;
			ans += ri;
		};
	};
	cout << ans << '\n';
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);cout.tie(nullptr);
    int tt = 1;
    //cin >> tt;
    while(tt--){
        solve();
    };
}














#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...