CF1043B.Lost Array
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Bajtek, known for his unusual gifts, recently got an integer array x0,x1,…,xk−1 .
Unfortunately, after a huge array-party with his extraordinary friends, he realized that he'd lost it. After hours spent on searching for a new toy, Bajtek found on the arrays producer's website another array a of length n+1 . As a formal description of a says, a0=0 and for all other i ( 1≤i≤n ) ai=x(i−1)modk+ai−1 , where pmodq denotes the remainder of division p by q .
For example, if the x=[1,2,3] and n=5 , then:
- a0=0 ,
- a1=x0mod3+a0=x0+0=1 ,
- a2=x1mod3+a1=x1+1=3 ,
- a3=x2mod3+a2=x2+3=6 ,
- a4=x3mod3+a3=x0+6=7 ,
- a5=x4mod3+a4=x1+7=9 .
So, if the x=[1,2,3] and n=5 , then a=[0,1,3,6,7,9] .
Now the boy hopes that he will be able to restore x from a ! Knowing that 1≤k≤n , help him and find all possible values of k — possible lengths of the lost array.
输入格式
The first line contains exactly one integer n ( 1≤n≤1000 ) — the length of the array a , excluding the element a0 .
The second line contains n integers a1,a2,…,an ( 1≤ai≤106 ).
Note that a0 is always 0 and is not given in the input.
输出格式
The first line of the output should contain one integer l denoting the number of correct lengths of the lost array.
The second line of the output should contain l integers — possible lengths of the lost array in increasing order.
输入输出样例
输入#1
5 1 2 3 4 5
输出#1
5 1 2 3 4 5
输入#2
5 1 3 5 6 8
输出#2
2 3 5
输入#3
3 1 5 3
输出#3
1 3
说明/提示
In the first example, any k is suitable, since a is an arithmetic progression.
Possible arrays x :
- [1]
- [1,1]
- [1,1,1]
- [1,1,1,1]
- [1,1,1,1,1]
In the second example, Bajtek's array can have three or five elements.
Possible arrays x :
- [1,2,2]
- [1,2,2,1,2]
For example, k=4 is bad, since it leads to 6+x0=8 and 0+x0=1 , which is an obvious contradiction.
In the third example, only k=n is good.
Array [1,4,−2] satisfies the requirements.
Note that xi may be negative.