#include <bits/stdc++.h>
using namespace std;
int64_t gcd(int64_t n, int64_t m) { return m ? gcd(m, n % m) : n; }
int64_t lcm(int64_t n, int64_t m) { return n / gcd(n, m) * m; }
struct debugger {
  static void call(string::iterator it, string::iterator ed) {}
  template <typename T, typename... aT>
  static void call(string::iterator it, string::iterator ed, T a, aT... rest) {
    string b;
    for (; *it != ','; ++it)
      if (*it != ' ') b += *it;
    cout << b << "=" << a << " ";
    call(++it, ed, rest...);
  }
};
void input() {
  freopen("input.txt", "r", stdin);
  ;
  freopen("output.txt", "w", stdout);
  ;
}
int64_t a[100008], cnt[100008 * 2];
void solve() {
  int64_t n;
  scanf("%lld", &n);
  ;
  for (int64_t i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
    ;
  }
  memset(cnt, 0, sizeof(cnt));
  int64_t j = 1;
  for (int64_t i = 1; i <= n / 2; i++) {
    cnt[100008 + a[i] - j]++;
    j++;
  }
  if (n % 2 == 0) {
    j--;
  }
  for (int64_t i = n / 2 + 1; i <= n; i++) {
    cnt[100008 + a[i] - j]++;
    j--;
  }
  int64_t ans = INT_MAX;
  for (int64_t i = 100008 + 0; i <= 100008 + 99999; i++) {
    ans = min(ans, n - cnt[i]);
  }
  cout << ans << '\n';
}
int32_t main() {
  solve();
  return 0;
}
