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

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


Все знают, что такое арифметическая прогрессия. На всякий случай напомним, что арифметической прогрессией называется такая последовательность чисел a1, a2, ..., an длины n, что выполняется условие:

a2 - a1 = a3 - a2 = a4 - a3 = ... = ai + 1 - ai = ... = an - an - 1.

Например, последовательности [1, 5], [10], [5, 4, 3] являются арифметическими прогрессиями, а последовательности [1, 3, 2], [1, 2, 4] — нет.

У Александра есть n карточек, на которых написаны целые числа. Артур хочет подарить Александру еще ровно одну карточку с числом, так, чтобы из полученных n + 1 карточек Александр мог выложить арифметическую прогрессию (Александр обязан использовать все свои карточки).

Артур уже купил карточку, но еще не написал число на ней. Помогите ему, выведите все целые числа, которые можно написать на карточке, чтобы описанное условие выполнялось.

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

В первой строке записано целое число n (1 ≤ n ≤ 105) — количество карточек. В следующей строке записана последовательность целых чисел — номера, записанные на карточках Александра. Номера — целые положительные числа, каждое из которых не больше 108.

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

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

Иначе выведите в первой строке количество целых чисел, которые подходят. Во второй строке выведите сами числа в порядке возрастания. Обратите внимание, что числа в ответе могут быть больше 108 или даже быть отрицательными (смотрите тестовые примеры).


Примеры
Входные данныеВыходные данные
1 3
4 1 7
2
-2 10
2 1
10
-1
3 4
1 3 5 9
1
7
4 4
4 3 4 5
0
5 2
2 4
3
0 3 6

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

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