Олимпиадный тренинг

Задача . D. Почти арифметическая прогрессия


Поликарп обожает арифметические прогрессии. Последовательность \([a_1, a_2, \dots, a_n]\) называется арифметической прогрессией, если для любого \(i\) (\(1 \le i < n\)) значение выражения \(a_{i+1} - a_i\) одинаково. Например, последовательности \([42]\), \([5, 5, 5]\), \([2, 11, 20, 29]\) и \([3, 2, 1, 0]\) — арифметические прогрессии, а \([1, 0, 1]\), \([1, 3, 9]\) и \([2, 3, 1]\) — нет.

Из определения следует, что любая последовательность из одного элемента или двух элементов — арифметическая прогрессия.

Поликарп нашел на улице некоторую последовательность положительных целых чисел \([b_1, b_2, \dots, b_n]\). Он согласен изменить каждый из элементов не более чем на единицу. Иными словами, каждый элемент последовательности может быть уменьшен на \(1\), оставлен без изменений или увеличен на \(1\).

Определите минимальное количество элементов последовательности \(b\), которые нужно изменить Поликарпу на единицу таким образом, чтобы последовательность \(b\) стала арифметической прогрессией, либо сообщите, что это невозможно.

Допустимо, что после изменений последовательность содержит \(0\).

Входные данные

В первой строке следует целое число \(n\) \((1 \le n \le 100\,000)\) — количество элементов в последовательности \(b\).

Во второй строке следует последовательность \(b_1, b_2, \dots, b_n\) \((1 \le b_i \le 10^{9})\).

Выходные данные

Если невозможно получить арифметическую прогрессию с помощью описанных операций, выведите -1. В противном случае, выведите неотрицательное целое число — минимальное количество элементов последовательности, которые нужно изменить на единицу таким образом, чтобы последовательность стала арифметической прогрессией.

Примечание

В первом примере нужно увеличить первое число на \(1\), уменьшить второе число на \(1\), увеличить третье число на \(1\), а четвертое число оставить без изменений. Таким образом, после изменения на единицу трех элементов, получим последовательность \([25, 20, 15, 10]\), которая является арифметической прогрессией.

Во втором примере не нужно изменять ни одного элемента, так как данная последовательность является арифметической прогрессией.

В третьем примере невозможно получить арифметическую прогрессию.

В четвертом примере нужно изменить только первый элемент, уменьшив его на единицу. После этого получим последовательность \([0, 3, 6, 9, 12]\), которая является арифметической прогрессией.


Примеры
Входные данныеВыходные данные
1 4
24 21 14 10
3
2 2
500 500
0
3 3
14 5 1
-1
4 5
1 3 6 9 12
1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя