#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],c=-1,min=1000000000;
     int dx[]={-1,-1,-1,0,0,0,1,1,1},dy[]={-1,0,1,-1,0,1,-1,0,1};
     for(int i=0;i<n;i++)
     cin>>arr[i];
     for(int i=0;i<9;i++)
     {
     c=0;
     int diff=(arr[1]+dy[i])-(arr[0]+dx[i]);
      if(dy[i]!=0) c++;
      if(dx[i]!=0) c++;
      for(int j=2;j<n;j++)
      {
       if(arr[j]-arr[j-1]==diff)
       continue;
       else if((arr[j]+dx[i])-(arr[j-1]+dy[i])==diff)
       {
       if(dy[i]!=0) c++;
       j++;
       }
       else
       if((arr[j]+dy[i])-(arr[j-1]+dx[i])==diff)
       {
       if(dx[i]!=0) c++;
       j++;
       }
       else
       {
       c=-1;
       break;
       }
      }
      if(c!=-1&&min>c)
      min=c;
     }
    if(min==1000000000)
    cout<<-1<<el;
    else
    cout<<min<<el;
    }
    return 0;
    }
/*
4
24 21 14 10
21 24
*/














