1430: 找回数组

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:25 Solved:12

Description

有一个长度为 k的整数数组 x[0],x[1],…,x[k−1]。不幸的是,这个数组已经丢失了,我们甚至不知道k的具体值。幸运的是,我们找到了另一个用数组x生成的长度为n+1的数组a[0],a[1],…,a[n]。
数组a:a[0]=0。对于 1≤i≤n,a[i]=x[(i−1)modk]+a[i−1]。
例如,当 x=[1,2,3]并且 n=5时,生成数组 a的过程如下:
a[0]=0
a[1]=x[0mod3]+a[0]=x[0]+0=1
a[2]=x[1mod3]+a[1]=x[1]+1=3
a[3]=x[2mod3]+a[2]=x[2]+3=6
a[4]=x[3mod3]+a[3]=x[0]+6=7
a[5]=x[4mod3]+a[4]=x[1]+7=9
所以,当 x=[1,2,3]并且 n=5时,可以生成数组 a={0,1,3,6,7,9}。
现在,我们希望你通过数组a找回数组x。更具体地说,已知1≤k≤n,请你找到所有可能的k值,即数组x的所有可能长度。

Input

第一行包含整数 n(1<=n<=1000)。
第二行包含 n个整数 a[1],a[2],…,a[n] (1<=a[i]<=10^6)。

Output

第一行输出一个整数,表示数组x的所有可能长度的数量。
第二行按升序输出l个整数,表示数组x的所有可能长度。

Sample Input Copy

5
1 3 5 6 8

Sample Output Copy

2
3 5