이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
pair<ll,ll> r[212345],l[212345];
int main() {
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
ll n,c=1e10;
cin>>n;
ll a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=n-2;i>=0;i--){
if(a[i]<=a[i+1]+r[i+1].second){
r[i].second=r[i+1].second+max(0ll,a[i+1]-a[i]+1);
r[i].first=r[i+1].first+r[i].second-r[i+1].second;
}
else{
r[i].first=r[i+1].first;
r[i].second=r[i+1].second;
}
}
for(int i=1;i<n;i++){
if(a[i]<=a[i-1]+l[i-1].second){
l[i].second=l[i-1].second+max(0ll,a[i-1]-a[i]+1);
l[i].first=l[i-1].first+l[i].second-l[i-1].second;
}
else{
l[i].first=l[i-1].first;
l[i].second=l[i-1].second;
}
}
for(int i=0;i<n;i++){
c=min(c,l[i].first+r[i].first-min(r[i].second,l[i].second));
}
cout<<c;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |