This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define F first
#define S second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(), (x).end()
#define int long long
void solve(){
int n;
cin >> n;
int a[n];
for(int i=0; i< n; i++){
cin >> a[i];
}
if(n==1){
cout << 0 << '\n';
return;
}
vector<int> rz;
for(int i=1; i< n; i++)rz.pb(a[i]-a[i-1]);
int pref[n];
int suf[n];
pref[0]=0;
for(int i=0; i< n-1; i++){
pref[i+1]=pref[i];
if(rz[i]<=0)pref[i+1]+=abs(rz[i])+1;
}
suf[n-1]=0;
for(int i=n-2; i>=0; i--){
suf[i]=suf[i+1];
if(rz[i]>=0)suf[i]+=rz[i]+1;
}
int ans=1e18;
for(int i=0; i< n; i++){
ans=min(ans, max(suf[i], pref[i]));
}
cout << ans << '\n';
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |