#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define dl double
#define int long long
#define ul uint_fast32_t
#define ll int_fast64_t
#define dll long double
#define ull uint_fast64_t
#define spektar this_thread::sleep_for(chrono::milliseconds(50))
void solve(){
int n;
cin >> n;
vector<ll> k(n);
for(auto& i:k) cin >> i;
vector<ll> pref1(n),pref2(n);
pref1[0]=0;
pref2[n-1]=0;
for(int i=1; i<n; i++){
if(k[i-1]+1>k[i]) pref1[i]=pref1[i-1]+k[i-1]+1-k[i];
else pref1[i]=pref1[i-1];
}
for(int i=n-2; i>=0; i--){
if(k[i+1]+1>k[i]) pref2[i]=pref2[i+1]+k[i+1]+1-k[i];
else pref2[i]=pref2[i+1];
}
ll min1=1000000000000000000;
for(int i=0; i<n; i++) min1=min(min1,max(pref2[i],pref1[i]));
cout << min1 << endl;
}
signed main(){
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t=1;
//cin >> t;
while(t--){
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |