Pagini recente » Cod sursa (job #545340) | Cod sursa (job #2175929) | Cod sursa (job #2696663) | Cod sursa (job #3240396) | Cod sursa (job #884917)
Cod sursa(job #884917)
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
#define Nmax 500010
#define LL long long
LL A[Nmax], X[Nmax];
int N, PI[Nmax], Q;
int main()
{
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
scanf("%i %lld", &N, &X[1]);
for(int i = 2; i <= N; ++i)
{
scanf("%lld", &X[i]);
A[i - 1] = X[i] - X[i - 1];
}
-- N;
for(int i = 2; i <= N; ++i)
{
while(Q && A[Q + 1] != A[i]) Q = PI[Q];
if(A[Q + 1] == A[i]) Q ++;
PI[i] = Q;
}
printf("%i\n", N - PI[N]);
for(int i = 1; i <= N - PI[N]; ++i)
printf("%lld\n", A[i]);
return 0;
}