Pagini recente » Cod sursa (job #1210129) | Cod sursa (job #2386789) | Cod sursa (job #2578189) | Cod sursa (job #3149697) | Cod sursa (job #18984)
Cod sursa(job #18984)
#include <stdio.h>
#define nm 524288
int n, p[nm];
long long v[nm], a[nm];
int main()
{
int i, j;
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
scanf("%d", &n);
for (i = 1; i <= n; ++i)
{
scanf("%lld", &v[i]);
if (i > 1)
a[i - 1] = (long long)v[i] - v[i - 1];
}
--n;
p[1] = j = 0;
for (i = 2; i <= n; ++i)
{
while(j && a[j + 1] != a[i])
j = p[j];
if (a[j + 1] == a[i])
++j;
p[i] = j;
}
printf("%d\n", n - p[n]);
for (i = 1; i <= n - p[n]; ++i)
printf("%lld\n", a[i]);
return 0;
}