제출 #1264874

#제출 시각아이디문제언어결과실행 시간메모리
1264874kustov_vadim_533Growing Vegetables is Fun 4 (JOI21_ho_t1)C++20
100 / 100
15 ms1996 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

#define len(v) (int)((v).size())

const int inf = 1e9;

inline void solve(){
	int n;
	cin >> n;
	vector<int> a(n);
	for (int i = 0; i < n; ++i){
		cin >> a[i];
	}

	vector<int> b(n - 1);
	for (int i = 0; i < n - 1; ++i){
		b[i] = a[i + 1] - a[i];
	}

	int l = 0;
	int r = n - 2;

	ll ans = 0;
	while (true){
		while (l < n - 1 && b[l] > 0) {
			++l;
		}
		while (r >= 0 && b[r] < 0) {
			--r;
		}
		if (l >= r) {
			break;
		} 

		int x = min(1 - b[l], b[r] + 1);
		b[l] += x;
		b[r] -= x;
		ans += x;
	}
	if (l == r){
		ans++;
	}
	cout << ans << '\n';
}

signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	cout.precision(60);

	int t = 1;
//	cin >> t;

	while (t--) {
		solve();
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...