Pagini recente » Cod sursa (job #2749117) | Cod sursa (job #2140115) | Cod sursa (job #1625179) | Cod sursa (job #1548323) | Cod sursa (job #732951)
Cod sursa(job #732951)
#include<stdio.h>
#define maxn 500005
FILE*f=fopen("reguli.in","r");
FILE*g=fopen("reguli.out","w");
int n;
int pi[maxn];
long long A[maxn];
int main () {
fscanf(f,"%d",&n);
long long x,y;
fscanf(f,"%lld",&y);
for ( int i = 2 ; i <= n ; ++i ){
fscanf(f,"%lld",&x);
A[i-1] = x - y;
y = x;
}
--n;
int k = 0;
for ( int i = 2 ; i <= n ; ++i ){
while ( k > 0 && A[k+1] != A[i] ){
k = pi[k];
}
if ( A[k+1] == A[i] ){
++k;
pi[i] = k;
}
}
fprintf(g,"%d\n",n-pi[n]);
for ( int i = 1 ; i <= n-pi[n] ; ++i ){
fprintf(g,"%lld\n",A[i]);
}
fclose(f);
fclose(g);
return 0;
}