#include <bits/stdc++.h>
#include <string>
using namespace std;
#define ll long long
#define dd double
#define ld long double
#define pi 3.14159265359
#define ull unsigned long long
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define el "\n"
#define Arwa ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define fix(x) cout<<fixed<<setprecision(x)
ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
ll lcm(int a,int b) {return a/gcd(a,b)*b;}
//here we go again
int main()
{
Arwa
int t=1;
//cin>>t;
while(t--)
{
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;i++)
cin>>arr[i];
int a,b,c,d,e,f,g,h,j,ca=0,cb=0,cc=0,cd=0,ce=0,cf=0,cg=0,ch=0,cj=0;
a=arr[1]-arr[0];
b=arr[1]+1-arr[0];
c=arr[1]-1-arr[0];
d=arr[1]-(arr[0]+1);
e=arr[1]+1-(arr[0]+1);
f=arr[1]-1-(arr[0]+1);
g=arr[1]+1-(arr[0]-1);
h=arr[1]-(arr[0]-1);
j=arr[1]-1-(arr[0]-1);
//cout<<a<<' '<<b<<' '<<c<<' '<<d<<' '<<e<<' '<<f<<' '<<g<<' '<<h<<el;
int xa=arr[1],xb=arr[1]+1,xc=arr[1]-1,xd=arr[1],xe=arr[1]+1,xf=arr[1]-1,xg=arr[1]+1,xh=arr[1],xj=arr[1]-1;
for(int i=2;i<n;i++)
{
if(ca!=-1)
{
if(arr[i]-xa==a)
xa=arr[i];
else if(arr[i]-xa<=0&&arr[i]+1-xa==a)
{
xa=arr[i]+1;
ca++;
}
else if(arr[i]-xa<=0&&arr[i]-1-xa==a)
{
xa=arr[i]-1;
ca++;
}
else if(arr[i]-xa>0&&arr[i]+1-xa==a)
{
xa=arr[i]+1;
ca++;
}
else if(arr[i]-xa<0&&arr[i]-1-xa==a)
{
xa=arr[i]-1;
ca++;
}
else ca=-1;
}
////////////////////////////////////////
if(cb!=-1)
{
if(arr[i]-xb==b)
xb=arr[i];
else if(arr[i]-xb<=0&&arr[i]+1-xb==b)
{
xb=arr[i]+1;
cb++;
}
else if(arr[i]-xb<=0&&arr[i]-1-xb==b)
{
xb=arr[i]-1;
cb++;
}
else if(arr[i]-xb>0&&arr[i]+1-xb==b)
{
xb=arr[i]+1;
cb++;
}
else if(arr[i]-xb<0&&arr[i]-1-xb==b)
{
xb=arr[i]-1;
cb++;
}
else cb=-1;
}
////////////////////////////////////////
if(cc!=-1)
{
if(arr[i]-xc==c)
xc=arr[i];
else if(arr[i]-xc<=0&&arr[i]+1-xc==c)
{
xc=arr[i]+1;
cc++;
}
else if(arr[i]-xc<=0&&arr[i]-1-xc==c)
{
xc=arr[i]-1;
cc++;
}
else if(arr[i]-xc>0&&arr[i]+1-xc==c)
{
xc=arr[i]+1;
cc++;
}
else if(arr[i]-xc<0&&arr[i]-1-xc==c)
{
xc=arr[i]-1;
cc++;
}
else cc=-1;
}
////////////////////////////////////////
if(cd!=-1)
{
if(arr[i]-xd==d)
xd=arr[i];
else if(arr[i]-xd<=0&&arr[i]+1-xd==d)
{
xd=arr[i]+1;
cd++;
}
else if(arr[i]-xd<=0&&arr[i]-1-xd==d)
{
xd=arr[i]-1;
cd++;
}
else if(arr[i]-xd>0&&arr[i]+1-xd==d)
{
xd=arr[i]+1;
cd++;
}
else if(arr[i]-xd<0&&arr[i]-1-xd==d)
{
xd=arr[i]-1;
cd++;
}
else cd=-1;
}
/////////////////////////////////////////
if(ce!=-1)
{
if(arr[i]-xe==e)
xe=arr[i];
else if(arr[i]-xe<=0&&arr[i]+1-xe==e)
{
xe=arr[i]+1;
ce++;
}
else if(arr[i]-xe<=0&&arr[i]-1-xe==e)
{
xe=arr[i]-1;
ce++;
}
else if(arr[i]-xe>0&&arr[i]+1-xe==e)
{
xe=arr[i]+1;
ce++;
}
else if(arr[i]-xe<0&&arr[i]-1-xe==e)
{
xe=arr[i]-1;
ce++;
}
else ce=-1;
}
//////////////////////////////////////////
if(cf!=-1)
{
if(arr[i]-xf==f)
xf=arr[i];
else if(arr[i]-xf<=0&&arr[i]+1-xf==f)
{
xf=arr[i]+1;
cf++;
}
else if(arr[i]-xf<=0&&arr[i]-1-xf==f)
{
xf=arr[i]-1;
cf++;
}
else if(arr[i]-xf>0&&arr[i]+1-xf==f)
{
xf=arr[i]+1;
cf++;
}
else if(arr[i]-xf<0&&arr[i]-1-xf==f)
{
xf=arr[i]-1;
cf++;
}
else cf=-1;
}
////////////////////////////////////////
if(cg!=-1)
{
if(arr[i]-xg==g)
xg=arr[i];
else if(arr[i]-xg<=0&&arr[i]+1-xg==g)
{
xg=arr[i]+1;
cg++;
}
else if(arr[i]-xg<=0&&arr[i]-1-xg==g)
{
xg=arr[i]-1;
cg++;
}
else if(arr[i]-xg>0&&arr[i]+1-xg==g)
{
xg=arr[i]+1;
cg++;
}
else if(arr[i]-xg<0&&arr[i]-1-xg==g)
{
xg=arr[i]-1;
cg++;
}
else cg=-1;
}
////////////////////////////////////////
if(ch!=-1)
{
if(arr[i]-xh==h)
xh=arr[i];
else if(arr[i]-xh<=0&&arr[i]+1-xh==h)
{
xh=arr[i]+1;
ch++;
}
else if(arr[i]-xh<=0&&arr[i]-1-xh==h)
{
xh=arr[i]-1;
ch++;
}
else if(arr[i]-xh>0&&arr[i]+1-xh==h)
{
xh=arr[i]+1;
ch++;
}
else if(arr[i]-xh<0&&arr[i]-1-xh==h)
{
xh=arr[i]-1;
ch++;
}
else ch=-1;
}
////////////////////////////////////////
if(cj!=-1)
{
if(arr[i]-xj==j)
xj=arr[i];
else if(arr[i]-xj<=0&&arr[i]+1-xj==j)
{
xj=arr[i]+1;
cj++;
}
else if(arr[i]-xj<=0&&arr[i]-1-xj==j)
{
xj=arr[i]-1;
cj++;
}
else if(arr[i]-xj>0&&arr[i]+1-xj==j)
{
xj=arr[i]+1;
cj++;
}
else if(arr[i]-xj<0&&arr[i]-1-xj==j)
{
xj=arr[i]-1;
cj++;
}
else cj=-1;
}
////////////////////////////////////////
}
if(cb!=-1) cb++;
if(cc!=-1) cc++;
if(cd!=-1) cd++;
if(ch!=-1) ch++;
if(ce!=-1) ce+=2;
if(cf!=-1) cf+=2;
if(cg!=-1) cg+=2;
if(cj!=-1) cj+=2;
ll min=1e9+1;
//cout<<ca<<' '<<cb<<' '<<cc<<' '<<cd<<' '<<ce<<' '<<cf<<' '<<cg<<' '<<ch<<' '<<cj<<el;
if(ca!=-1&&min>ca) min=ca;
if(cb!=-1&&min>cb) min=cb;
if(cc!=-1&&min>cc) min=cc;
if(cd!=-1&&min>cd) min=cd;
if(ce!=-1&&min>ce) min=ce;
if(cf!=-1&&min>cf) min=cf;
if(cg!=-1&&min>cg) min=cg;
if(ch!=-1&&min>ch) min=ch;
if(cj!=-1&&min>cj) min=cj;
if(min==1e9+1)
cout<<-1<<el;
else
cout<<min<<el;
}
return 0;
}