Pagini recente » Cod sursa (job #1088797) | Cod sursa (job #273191) | Cod sursa (job #1459208) | Cod sursa (job #1787143) | Cod sursa (job #214221)
Cod sursa(job #214221)
# include <cstdio>
# define FIN "reguli.in"
# define FOUT "reguli.out"
# define MAXN 500005
int N,i,x,y,k,L;
int A[MAXN];
int P[MAXN];
int main()
{
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%d %d",&N,&x);
for (i = 1; i < N; ++i)
{
scanf("%d",&y);
A[i] = y - x;
x = y;
}
P[1] = 0;
k = 0;
for (i = 2; i < N; ++i)
{
while (k && A[k+1] != A[i])
k = P[k];
if (A[k+1] == A[i]) k++;
P[i] = k;
}
L = N-1;
for (i = 2; i < N && L == N-1; ++i)
if (P[i]&&i%(i-P[i])==0&&P[i]==P[N-1]-N+1+i)
L = i - P[i];
printf("%d\n",L);
for (i = 1; i <= L; ++i)
printf("%d\n",A[i]);
return 0;
}