#include <iostream>
#include <cstdlib>
#include <memory.h>

using namespace std;

const int NMAX = 10000;

int s[NMAX+1], s_orig[NMAX+1]; //s[i] - номер книжки в позиции i
int p[NMAX+1], p_orig[NMAX+1]; //p[i] - позиция, где стоит книжка i
int n;
int dir, first;

//позиция, где должна оказаться книжка в результате
int get_pos(int book_num) {
  int res;
  if (dir==1) {
    res = first + book_num - 1;
    if (res>n) res -= n;
  }
  else {
    res = first - book_num + 1;
    if (res <=0) res +=n;
  }
  return res;
}

int main() {
//  freopen("shelf.in","r",stdin);
//  freopen("shelf.out","w",stdout);
    
  cin >> n;
  for (int i=1; i<=n; i++) {
    cin >> s_orig[i];
    p_orig[s_orig[i]] = i;
  }
  
  int min_count = NMAX;
  //перебираем направление обхода и начальную позицию
  for (dir=1; dir<=2; dir++) {
    for (first=1; first<=n; first++) {

      int cur_count = 0;
      memcpy(s, s_orig, sizeof(int)*(n+1));
      memcpy(p, p_orig, sizeof(int)*(n+1));

      for (int book_num=1; book_num<=n; book_num++) {
        int cur_pos = p[book_num]; //текущая позиция
        int res_pos = get_pos(book_num); //позиция, где должна оказаться книжка
        if (cur_pos!=res_pos) {
           //меняем книжки в этих позициях
           int book_num2 = s[res_pos];
           p[book_num] = res_pos;
           p[book_num2] = cur_pos;
           s[cur_pos] = book_num2;
           s[res_pos] = book_num; 
           cur_count++;
        }
      }

      if (cur_count < min_count) min_count = cur_count;

    }
  }

  cout << min_count << endl;

  return 0;
}

