Pagini recente » Cod sursa (job #2174871) | Cod sursa (job #1844067) | Cod sursa (job #313765) | Cod sursa (job #1117021) | Cod sursa (job #1554112)
# include <bits/stdc++.h>
using namespace std;
const int Nmax = 500000 + 5;
int phi[Nmax], N;
long long a[Nmax], ant, x;
void make_phi() {
phi[1] = 0;
for (int i = 2; i <= N; ++i){
int k = phi[i - 1];
while (k && a[k + 1] != a[i]) k = phi[k];
if (a[k + 1] == a[i]) phi[i] = k + 1;
else phi[i] = 0;
}
}
int main ()
{
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
scanf("%d\n%lld\n", &N, &ant);
N--;
for (int i = 1; i <= N; ++i){
scanf("%lld\n", &x);
a[i] = x - ant;
ant = x;
}
make_phi();
printf("%d\n", N - phi[N]);
for (int i = 1; i <= N - phi[N]; ++i)
printf("%lld\n", a[i]);
return 0;
}