CF382C Arithmetic Progression

题目描述

众所周知,什么是等差数列。我们再提醒一下,等差数列就是这样一个长度为 $n$ 的数列 $a_1, a_2, \ldots, a_n$,满足以下条件: $a_2 - a_1 = a_3 - a_2 = a_4 - a_3 = \cdots = a_{i+1} - a_i = \cdots = a_n - a_{n-1}$。 例如,序列 $[1, 5]$、$[10]$、$[5, 4, 3]$ 都是等差数列,而 $[1, 3, 2]$、$[1, 2, 4]$ 不是等差数列。 Alexander 有 $n$ 张卡片,每张卡片上写有一个整数。Arthur 想再给 Alexander 一张卡片,使得 Alexander 可以用这 $n+1$ 张卡片的数字组成一个等差数列(必须用完所有卡片)。 Arthur 已经买了一张空白卡片,但是尚未在上面写数字。请你帮他计算并输出,所有可以写在卡片上的整数,使得上述条件成立。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 10^5$)——卡片的数量。 第二行包含 $n$ 个整数,依次为 Alexander 手上的卡片上的数字。每个数字都是正整数,且不超过 $10^8$。

输出格式

如果 Arthur 可以写无穷多个不同的整数在卡片上,输出一行 $-1$。 否则,第一行输出满足条件的整数个数。 第二行输出这些整数,按从小到大的顺序排列。注意,答案中的数字可能超过 $10^8$,也可能是负数(见样例)。

说明/提示

由 ChatGPT 5 翻译