水题。。。完全不似5级题的风格。。。。
#include <bits/stdc++.h>
using namespace std;
const int MAXN=100100;
int h[MAXN],dp[2][MAXN];
int main()
{
int n,i,ans;
while(~scanf("%d",&n))
{
for(i=1;i<=n;i++)
scanf("%d",&h[i]);
dp[0][0]=dp[1][n+1]=0;
for(i=1;i<=n;i++)
dp[0][i]=min(dp[0][i-1]+1,h[i]);
for(i=n;i>=1;i--)
dp[1][i]=min(dp[1][i+1]+1,h[i]);
ans=0;
for(i=1;i<=n;i++)
ans=max(ans,min(dp[0][i],dp[1][i]));
printf("%d\n",ans);
}
}