Pagini recente » Cod sursa (job #205451) | Cod sursa (job #724906) | Cod sursa (job #1989528) | Cod sursa (job #717170) | Cod sursa (job #18284)
Cod sursa(job #18284)
#include <cstdio>
#define Nmax 500005
int n, pref[Nmax];
long long v[Nmax];
void readdata()
{
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
int i;
long long val, nou;
scanf("%d", &n);
--n;
scanf("%lld", &val);
for (i = 1; i <= n; ++i)
{
scanf("%lld", &nou);
v[i] = nou-val;
val = nou;
}
}
void solve()
{
int k, i, j;
pref[1] = 0;
k = 0;
for (i = 2; i <= n; ++i)
{
while (k && v[k+1] != v[i]) k = pref[k];
if (v[k+1] == v[i]) ++k;
pref[i] = k;
}
i = n-pref[n];
printf("%d\n", i);
for (j = 1; j <= i; ++j)
printf("%lld\n", v[j]);
}
int main()
{
readdata();
solve();
return 0;
}