#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 7;
long long t[N];
int sprawdz2(int roz, int pierwszy, int n) {
  int licz = 0;
  for (int i = 0; i < n; i++) {
    if (abs(t[i] - (pierwszy + i * roz)) > 1) {
      return (int)1e9 + 7;
    }
    if (t[i] != pierwszy + i * roz) {
      licz++;
    }
  }
  return licz;
}
int sprawdz(long long int suma_roz, int n) {
  if (suma_roz % (n - 1) != 0) {
    return -1;
  }
  int minn = min(min(sprawdz2(suma_roz / (n - 1), t[0] + 1, n),
                     sprawdz2(suma_roz / (n - 1), t[0], n)),
                 sprawdz2(suma_roz / (n - 1), t[0] - 1, n));
  if (minn == (int)1e9 + 7) {
    return -1;
  }
  return minn;
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%lld", &t[i]);
  }
  long long suma_ruznic = 0;
  if (n <= 2) {
    printf("0\n");
    return 0;
  }
  for (int i = 1; i < n; i++) {
    suma_ruznic += t[i] - t[i - 1];
  }
  int minn = n + 7;
  for (long long int i = suma_ruznic - 2; i <= suma_ruznic + 2; i++) {
    int s = sprawdz(i, n);
    if (s != -1) {
      minn = min(minn, s);
    }
  }
  if (minn <= n) {
    printf("%d\n", minn);
    return 0;
  }
  printf("-1\n");
  return 0;
}
