#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define ertunt return
const int MOD = 998244353;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
int main() {
ll n;
cin >> n;
ll a[n+5];
for(ll i = 1; i <= n; i++)cin >> a[i];
ll pre[n+5],suf[n+5];
pre[1] = 0;
for(ll i = 2; i < n; i++){
pre[i] = pre[i-1];
if(a[i-1] >= a[i]){
pre[i]+=a[i-1]-a[i]+1;
}
}
suf[n] = 0;
for(ll i = n-1; i > 0; i--){
suf[i] = suf[i+1];
if(a[i+1] >= a[i]){
suf[i]+=a[i+1]-a[i]+1;
}
}
ll ans = 1e18;
for(ll i = 1; i <= n; i++){
ans = min(ans,max(pre[i],suf[i]));
}
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |