题目描述
【题目描述】
里程表可以用来记录单次行驶的距离。你非常勤奋:在每次旅行开始时,你将行程里程表重置为0,在每次旅行结束时,你记下旅行距离。
因此,您拥有了所有旅行所走距离(以公里为单位)的列表。不幸的是,这个列表中只有一个数字是伪造的;你错误地记录了你乘坐另一辆车的行程长度。您还忘记了列表中与此次旅行对应的条目。
考虑到其中一个书写的距离是假的,你想知道你在自己的车上可以走的所有可能的总距离。更具体地说,所有的值都是D,这样就可以从列表中删除一次行程,并使剩余距离总和为D。
【输入】
第一行输入一个整数N(2≤N≤10000),即您记下的旅行数量。第二行输入由N个整数d1,d2,...,dn(1≤di≤10000),其中di是您记录的第i次行程的里程。
【输出】
输出两行。第一行一个数字K,这是可以获得的可能不同距离的数量。第二行应该包含K个不同整数的列表,每个整数都是一个可能的和,可以通过恰好移除一个记录的距离来获得。该列表应按升序显示。
【样本输入1】
4
1 5 3 1
【样本输出1】
3
5 7 9
【样本输入2】
5
10 9 8 7 6
【样本输出2】
5
30 31 32 33 34
【样本输入3】
7
87 42 101 102 191 87 42
【样本输出3】
5
461 550 551 565 610
【样本输入4】
5
10 10 10 10 10
【样本输出4】
1
40
样例输入 复制
4
1 5 3 1
样例输出 复制
3
5 7 9