Pagini recente » Cod sursa (job #1894296) | Cod sursa (job #125228) | Cod sursa (job #2714338) | Cod sursa (job #2876984) | Cod sursa (job #214222)
Cod sursa(job #214222)
# include <cstdio>
# define FIN "reguli.in"
# define FOUT "reguli.out"
# define MAXN 500005
long long N,i,x,y,k,L;
long long A[MAXN];
long long P[MAXN];
int main()
{
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%lld %lld",&N,&x);
for (i = 1; i < N; ++i)
{
scanf("%lld",&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("%lld\n",L);
for (i = 1; i <= L; ++i)
printf("%lld\n",A[i]);
return 0;
}