Pagini recente » Cod sursa (job #1134348) | Cod sursa (job #2800008) | Cod sursa (job #2232031) | Cod sursa (job #797414) | Cod sursa (job #743065)
Cod sursa(job #743065)
//Reguli - infoarena - Preoni 2007 Runda 2
#include <stdio.h>
#define INPUT "reguli.in"
#define OUTPUT "reguli.out"
#define NMAX 500001
int N;
int A[NMAX], T[NMAX];
void prefix()
{
int i, k = 0;
T[1] = 0;
for(i = 2; i <= N; ++i)
{
while((k>0) && A[i] != A[k+1])
k = T[k];
if(A[i] == A[k+1]) ++k;
T[i] = k;
}
}
int main()
{
freopen(INPUT, "r", stdin);
freopen(OUTPUT, "w", stdout);
scanf("%d", &N);
int x, y, i;
scanf("%d", &x);
for(i = 2; i <= N; ++i)
{
scanf("%d", &y);
A[i-1] = y-x;
x = y;
}
--N;
prefix();
int l = N - T[N];
printf("%d\n", l);
for(i = 1; i <= l; ++i)
printf("%d\n", A[i]);
return 0;
}