#include using namespace std; #define nmax 100010 #define lgmax 19 int rmq[lgmax][nmax]; int lg[nmax]; int v[nmax]; int n; long long res=-(1ll<<34); int main() { int i,k; cin>>n; for(i=2;i<=n;++i) lg[i]=1+lg[i>>1]; for(i=1;i<=n;++i) { cin>>v[i]; rmq[0][i]=v[i]; } for(k=1;k<=lg[n];++k) for(i=1;i+(1<1){ rmq[k][i]=max(rmq[k-1][i],rmq[k-1][i+(1<<(k-1))]); if(res<1ll*rmq[k][i]+v[i]-k+1) res=1ll*rmq[k][i]+v[i]-k+1; } else { rmq[k][i]=rmq[k-1][i+1]; if(res<1ll*rmq[k][i]+v[i]-k+1) res=1ll*rmq[k][i]+v[i]-k+1; } } cout<