Pagini recente » Cod sursa (job #1666645) | Cod sursa (job #192952) | Cod sursa (job #717867) | Cod sursa (job #2053524) | Cod sursa (job #743067)
Cod sursa(job #743067)
//Reguli - infoarena - Preoni 2007 Runda 2
#include <stdio.h>
#define INPUT "reguli.in"
#define OUTPUT "reguli.out"
#define NMAX 500011
long long A[NMAX], T[NMAX], N;
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);
long long x, y, i;
scanf("%lld", &x);
for(i = 2; i <= N; ++i)
{
scanf("%lld", &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("%lld\n", A[i]);
return 0;
}