// Задача "Равномерное распределение"
// 8-я Интернет-олимпиада сезона 2008-2009, базовый уровень.
// Автор задачи:  Владимир Ульянцев, ulyantsev@rain.ifmo.ru
// Автор решения: Сергей Поромов, poromov@rain.ifmo.ru

var
  ans, tans, s : int64;
  c, t, i, j, n : integer;
  a : array[1..1000] of integer;
begin
  reset(input, 'balance.in');
  rewrite(output, 'balance.out');
  read(n);
  s := 0;
  for i := 1 to n do begin
    read(a[i]);
    s := s + a[i];
  end;
  if (s mod n) <> 0 then begin
    writeln(-1);
    halt;
  end;
  c := s div n;
  ans := s * n * n;
  for i := 0 to n - 1 do begin
    t := 0;
    tans := 0;
    for j := 1 to n do begin
      t := t + a[(i + j - 1) mod n + 1];
      tans := tans + abs(t - j * c);
    end;
    if tans < ans then
      ans := tans;
  end;
  writeln(ans);
end.