#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
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZGQgZG91YmxlCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBwaSAzLjE0MTU5MjY1MzU5CiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHllcyBjb3V0PDwiWUVTXG4iCiNkZWZpbmUgbm8gY291dDw8Ik5PXG4iCiNkZWZpbmUgZWwgIlxuIgojZGVmaW5lIEFyd2EgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBmaXgoeCkgY291dDw8Zml4ZWQ8PHNldHByZWNpc2lvbih4KQpsbCBnY2QobGwgYSxsbCBiKSB7cmV0dXJuIGI9PTA/YTpnY2QoYixhJWIpO30KbGwgbGNtKGludCBhLGludCBiKSB7cmV0dXJuIGEvZ2NkKGEsYikqYjt9Ci8vaGVyZSB3ZSBnbyBhZ2FpbgppbnQgbWFpbigpCnsKICAgICBBcndhCiAgICBpbnQgdD0xOwogICAgLy9jaW4+PnQ7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgaW50IG47CiAgICAgY2luPj5uOwogICAgIGludCBhcnJbbl0sYz0tMSxtaW49MTAwMDAwMDAwMDsKICAgICBpbnQgZHhbXT17LTEsLTEsLTEsMCwwLDAsMSwxLDF9LGR5W109ey0xLDAsMSwtMSwwLDEsLTEsMCwxfTsKICAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgIGNpbj4+YXJyW2ldOwogICAgIGZvcihpbnQgaT0wO2k8OTtpKyspCiAgICAgewogICAgIGM9MDsKICAgICBpbnQgZGlmZj0oYXJyWzFdK2R5W2ldKS0oYXJyWzBdK2R4W2ldKTsKICAgICAgaWYoZHlbaV0hPTApIGMrKzsKICAgICAgaWYoZHhbaV0hPTApIGMrKzsKICAgICAgZm9yKGludCBqPTI7ajxuO2orKykKICAgICAgewogICAgICAgaWYoYXJyW2pdLWFycltqLTFdPT1kaWZmKQogICAgICAgY29udGludWU7CiAgICAgICBlbHNlIGlmKChhcnJbal0rZHhbaV0pLShhcnJbai0xXStkeVtpXSk9PWRpZmYpCiAgICAgICB7CiAgICAgICBpZihkeVtpXSE9MCkgYysrOwogICAgICAgaisrOwogICAgICAgfQogICAgICAgZWxzZQogICAgICAgaWYoKGFycltqXStkeVtpXSktKGFycltqLTFdK2R4W2ldKT09ZGlmZikKICAgICAgIHsKICAgICAgIGlmKGR4W2ldIT0wKSBjKys7CiAgICAgICBqKys7CiAgICAgICB9CiAgICAgICBlbHNlCiAgICAgICB7CiAgICAgICBjPS0xOwogICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgIH0KICAgICAgaWYoYyE9LTEmJm1pbj5jKQogICAgICBtaW49YzsKICAgICB9CiAgICBpZihtaW49PTEwMDAwMDAwMDApCiAgICBjb3V0PDwtMTw8ZWw7CiAgICBlbHNlCiAgICBjb3V0PDxtaW48PGVsOwogICAgfQogICAgcmV0dXJuIDA7CiAgICB9Ci8qCjQKMjQgMjEgMTQgMTAKMjEgMjQKKi8KCgoKCgoKCgoKCgoKCgo=