Pagini recente » Cod sursa (job #42750) | Cod sursa (job #2834590) | Cod sursa (job #1661379) | Cod sursa (job #3246340) | Cod sursa (job #18549)
Cod sursa(job #18549)
#include <stdio.h>
#define nm 524288
int n, v[nm], a[nm], p[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("%d", &v[i]);
if (i > 1)
a[i - 1] = 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("%d\n", a[i]);
return 0;
}