update
This commit is contained in:
parent
2c7198078f
commit
1042f508dd
@ -1,51 +1,44 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using ll = int64_t;
|
||||
using std::cin,std::cout;
|
||||
using namespace std;
|
||||
|
||||
const ll maxn{ll(2e5+5)},inf{ll(1)<<60};
|
||||
ll n,a[maxn],fl[maxn],fr[maxn],ans{inf},gl[maxn],gr[maxn];
|
||||
ll n,a[maxn],d[maxn],p[maxn],s[maxn],ans{inf};
|
||||
|
||||
template<class T>
|
||||
void pa(T *t){
|
||||
for(ll i{1};i<=n;i++)cout<<t[i]<<' ';
|
||||
cout<<'\n';
|
||||
}
|
||||
template<class T,class ...Args>
|
||||
void pa(T&&t,Args&&...args){
|
||||
pa(t);
|
||||
pa(args...);
|
||||
}
|
||||
|
||||
int main(){
|
||||
std::iostream::sync_with_stdio(false),std::cin.tie(nullptr),std::cout.tie(nullptr);
|
||||
|
||||
iostream::sync_with_stdio(false),cin.tie(0),cout.tie(0);
|
||||
cin>>n;
|
||||
for(ll i{1};i<=n;i++)cin>>a[i];
|
||||
for(ll i{1};i<=n;i++){
|
||||
cin>>a[i];
|
||||
}
|
||||
for(ll i{2};i<=n;i++){
|
||||
if(a[i-1]+fl[i-1]>=a[i]){
|
||||
fl[i]=fl[i-1]+(a[i-1]-a[i])+1;
|
||||
}
|
||||
gl[i]=gl[i-1];
|
||||
if(fl[i-1]<fl[i]){
|
||||
gl[i]+=fl[i]-fl[i-1];
|
||||
d[i]=a[i]-a[i-1];
|
||||
if(d[i]<=0){
|
||||
p[i]=p[i-1]+1-d[i];
|
||||
}else{
|
||||
p[i]=p[i-1];
|
||||
}
|
||||
}
|
||||
for(ll i{n-1};i>=1;i--){
|
||||
if(a[i+1]+fr[i+1]>=a[i]){
|
||||
fr[i]=fr[i+1]+(a[i+1]-a[i])+1;
|
||||
}
|
||||
gr[i]=gr[i+1];
|
||||
if(fr[i+1]<fr[i]){
|
||||
gr[i]+=fr[i]-fr[i+1];
|
||||
for(ll i{n};i>=1;i--){
|
||||
if(d[i]>=0){
|
||||
s[i]=s[i+1]+d[i]+1;
|
||||
}else{
|
||||
s[i]=s[i+1];
|
||||
}
|
||||
}
|
||||
// pa(fl);
|
||||
// pa(fr);
|
||||
// pa(gl);
|
||||
// pa(gr);
|
||||
// pa(d,p,s);
|
||||
for(ll i{1};i<=n;i++){
|
||||
ans=std::min(
|
||||
ans,
|
||||
(gl[i]+gr[i])
|
||||
);
|
||||
ans=min(ans,max(p[i],s[i+1]));
|
||||
}
|
||||
cout<<ans<<'\n';
|
||||
}
|
Loading…
Reference in New Issue
Block a user