/*
task:psort
lang:C++
*/
#include<iostream>
using namespace std;
int main()
{unsigned n;
cin>>n;int f=n;
int br=0;
unsigned a[1000];
unsigned i,j;unsigned posmax=1,posmin=1;
for(i=1;i<=n;i++)
cin>>a[i];
int max=a[1],min=a[n];
for(i=1;i<=n;i++)
 {if(a[i]>max){max=a[i];posmax=i;}
 if(a[i]<min){min=a[i];posmin=i;}
 }
if((n-posmax)>n/2&&(posmin-1)>n/2)
{
	br+=2;posmax=n;posmin=1;f-=2;
	for(i=2;i<n;i++)
	{if(a[i]==i)f--;
	 if(a[i]-a[i-1]==1)f--;
    }
	br+=f/2;

}
else
if((posmin-1)>n/2&&(n-posmax)<=n/2)
{
	br++;if(posmin>posmax){posmin=1;posmax++;} else posmin=1;f--;
	br+=n-posmax;f=f-(n-posmax+1);
	for(i=2;i<n;i++)
	if(a[i]==i||a[i]-a[i-1]==1)f--;

	br+=f/2;
}
else if((posmin-1)<=n/2&&(n-posmax)>=n/2)
{br++;
if(posmax<posmin){posmax=n;posmin--;f--;}
 else {posmax=n;f--;}
 br+=posmin-1;
 f=f-(posmin);
 for(i=2;i<n;i++)
 if(a[i]==i||a[i]-a[i-1]==1)f--;
 br+=f/2;
}
else if((posmin-1)<=n/2&&(n-posmax)<=n/2)
{ br+=(posmin-1)+(n-posmax);f-=2;f-=(posmin-1)+(n-posmax);
  for(i=2;i<n;i++)
  {if(a[i]==i)f--;
   if(a[i]-a[i-1]==1)if(a[i]!=i)f--;
  }
 br+=f/2;
}
if(n!=1)cout<<br<<endl;
if(n==1)cout<<"0"<<endl;
return 0;
}

