Submission #1328705

#TimeUsernameProblemLanguageResultExecution timeMemory
1328705heyder_7Growing Vegetables is Fun 4 (JOI21_ho_t1)C++20
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
#define F first 
#define S second
#define pb push_back
#define ins insert
#define pf push_front
#define lb lower_bound
#define ub upper_bound
#define yes cout << "YES" << endl
#define no cout << "NO" << endl
#define srt(p) sort(p.begin() , p.end())
#define rvr(p) reverse(p.begin() , p.end())
#define all(p) (p.begin() , p.end())
const int INF = 1e6 , MOD = 998244353 , MAX = 1e7;
int dx[8] = {-1 , -1 , -1 , 0 , 0 , 1 , 1 , 1};
int dy[8] = {-1 , 0 , 1 , -1 , 1 , -1 , 0 , 1};

bool is_prime(int n) {
	if(n == 1 or n == 0) return false;
	if(n == 2) return true;
	if(n % 2 == 0) return false;
	for(int i = 3; i <= sqrt(n); i += 2) {
		if(n % i == 0) return false;
	}
	return true;
}

struct Edge {
    int u , v , w;
};

void solve() {
    int n;  
    cin >> n;
    vector<int> vt(n + 1 , 0) , pref(n + 2 , 0) , suff(n + 2 , 0);
    for(int i = 1; i <= n; ++ i) cin >> vt[i];
    for(int i = 2; i <= n; ++ i) {
        pref[i] = pref[i - 1];
        if(vt[i] <= vt[i - 1]) pref[i] += (vt[i - 1] - vt[i] + 1);
    }
    for(int i = n - 1;i >= 1; i--) {
        suff[i] = suff[i + 1];
        if(vt[i] <= vt[i + 1]) {
            suff[i] += (vt[i + 1] - vt[i] + 1);
        }
    }
    int ans = INT_MAX;
    for(int i = 1; i <= n; ++ i) ans = min(ans , max(pref[i] , suff[i]));
    cout << ans << endl;
}

signed main() {
    // freopen("input.txt","r",stdin);
    // freopen("output.txt","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    //cin >> t;
    while (t--) {
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...