#include <bits/stdc++.h>
const long long inf = 9223372036854775807ll;
const int iinf = 2147483647;
const int limit = 1048576;
using namespace std;
bool sync_with_stdio(bool sync = false);
int main() {
  int n;
  scanf("%d", &n);
  vector<int> h(n + 1);
  for (int i = (int)1; i < (int)n + 1; i++) scanf("%d", &h[i]);
  int best = 0;
  vector<int> t(n + 1);
  for (int i = (int)1; i < (int)n + 1; i++) {
    best = min(best, h[i] - i);
    t[i] = i + best;
  }
  best = 0;
  for (int i = (int)1; i < (int)n + 1; i++) {
    best = min(best, h[n + 1 - i] - i);
    t[n + 1 - i] = min(t[n + 1 - i], i + best);
  }
  int res = 0;
  for (int i = (int)1; i < (int)n + 1; i++) res = max(res, t[i]);
  printf("%d", res);
  return 0;
}
