Pagini recente » Cod sursa (job #2737884) | Cod sursa (job #2438506) | Cod sursa (job #1073932) | Cod sursa (job #538374) | Cod sursa (job #966661)
Cod sursa(job #966661)
#include<cstdio>
using namespace std ;
#define maxn 500001
int N ;
int pi[maxn], sir[maxn] ;
void prefix()
{
int k = 0 ;
for(int poz = 2; poz < N; ++poz )
{
while( sir[poz] != sir[ k + 1 ] && k > 0 )
k = pi[k] ;
if( sir[poz] == sir[ k + 1 ] )
++k ;
pi[poz] = k ;
}
}
int main()
{
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
scanf("%d", &N);
int x1, x2;
scanf("%d", &x1);
for(int i = 1; i < N; ++i )
{
scanf("%d", &x2);
sir[i] = x2 - x1 ;
x1 = x2 ;
}
prefix() ;
int len = N - 1 - pi[ N - 1 ] ;
printf("%d\n", len);
for(int i = 1; i <= len; ++i )
printf("%d\n", sir[i]);
return 0;
}