이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int>pii;
int32_t main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
int arr[n+5];
int diff[n+5];
memset(diff,0,sizeof(diff));
for(int x=1;x<=n;x++){
cin >> arr[x];
if(x>1){
diff[x]=arr[x]-arr[x-1];
}
}
//precompute
int left[n+5];
int right[n+5];
memset(left,0,sizeof(left));
memset(right,0,sizeof(right));
//positive gradient
for(int x=2;x<=n;x++){
left[x]=left[x-1]+max(0LL,1-diff[x]);
}
//negative gradient
for(int x=n;x>=2;x--){
right[x]=right[x+1]+max(0LL,1+diff[x]);
}
//combine
int best=LONG_LONG_MAX;
for(int x=1;x<=n;x++){
int hold=max(left[x],right[x+1]);
best=min(best,hold);
}
cout << best;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |