fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int N,ans=0;
  4. int A[200001],lr[200001]={},rl[200001]={};//lr:l>r rl:r>l
  5. int h[200001];
  6. int main() {
  7. cin>>N;
  8. for(int q=0;q<N;q=q+1){
  9. cin>>A[q];
  10. }
  11. lr[0]=1;
  12. rl[N-1]=1;
  13. for(int q=0;q<=N;q=q+1){
  14. if(lr[q]+1<A[q+1]){
  15. lr[q+1]=lr[q]+1;
  16. }
  17. else{
  18. lr[q+1]=A[q+1];
  19. }
  20. }
  21. for(int q=N-1;q>=0;q=q-1){
  22. if(rl[q]+1<A[q-1]){
  23. rl[q-1]=rl[q]+1;
  24. }
  25. else{
  26. rl[q-1]=A[q-1];
  27. }
  28. }
  29. for(int q=0;q<=N;q=q+1){
  30. if(lr[q]<rl[q]){
  31. h[q]=lr[q];
  32. }
  33. else{
  34. h[q]=rl[q];
  35. }
  36. }
  37. for(int q=0;q<=N;q=q+1){
  38. if(ans<h[q]){
  39. ans=h[q];
  40. }
  41. }
  42. cout<<ans;
  43. return 0;
  44. }
Success #stdin #stdout 0s 5648KB
stdin
1
1000000000

stdout
1