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 翻译