이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define mod 1000000007
#define inf 0x3f3f3f3f
#define bit(x,i)(((x)>>(i))&1)
#define FAST ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;
ifstream fin("partit.in");
ofstream fout("partit.out");
const long long int mare=1LL*1000000000000000000;
long long int T,n,m,ok,i,j,k,t;
long long int c,aux,start,maxx,summax,minn;
long long int contor,suma,poz,dim;
long long int v[200005],st[200005],dr[200005],sumst[200005],sumdr[200005];
int main()
{
cin>>n;
for(i=1;i<=n;i++)
{
cin>>v[i];
}
st[1]=v[1];
for(i=2;i<=n;i++)
{
st[i]=v[i]+sumst[i-1];
sumst[i]=sumst[i-1];
if(st[i]<=st[i-1])
{
sumst[i]+=(st[i-1]-st[i])+1;
st[i]=st[i-1]+1;
}
}
dr[n]=v[n];
for(i=n-1;i>=1;i--)
{
dr[i]=v[i]+sumdr[i+1];
sumdr[i]=sumdr[i+1];
if(dr[i]<=dr[i+1])
{
sumdr[i]+=(dr[i+1]-dr[i])+1;
dr[i]=dr[i+1]+1;
}
}
contor=mare;
for(i=1;i<=n;i++)
{
contor=min(contor,max(sumst[i],sumdr[i]));
}
cout<<contor;
return 0;
}
/*
7
12 2 34 85 4 91 3
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |