Pagini recente » Profil hominidu | Cod sursa (job #958565) | Cod sursa (job #3237607) | Cod sursa (job #1273321) | Cod sursa (job #19319)
Cod sursa(job #19319)
#include <stdio.h>
#include <string.h>
#define NMAX 500010
int N;
int a[NMAX];
int s[NMAX];
int main()
{
int i, l = 0, p = 0, beg, e, lmax;
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
scanf("%d", &N);
for (i = 0; i < N; i++) scanf("%d", &a[i]);
for (i = 0; i < N - 1; i++) s[i] = a[i+1] - a[i];
// for (i = 0; i < N - 1; i++) printf("%d ", s[i]);
// printf("\n");
l = p = 0;
beg = 0;
lmax = 0;
for (i = 1; i < N - 1;)
{
e = 0;
if (s[i] == s[beg]) beg++, e = 1;
else {
if (beg == 0) e = 1;
beg = 0, p = 0, l = 0;
}
if (beg == p) {
l += p;
if (l > lmax) lmax = l;
beg = 0;
}
if (beg)
if (i & 1)
if ( (beg == (i+1) >> 1) || ( beg == 1 && i == 1))
{
l = i+1;
if (l > lmax) lmax = l;
p = (i+1) >> 1;
beg = 0;
}
if (e) i++;
}
if (!p) p = N - 1;
printf("%d\n", p);
for (i = 0; i < p; i++) printf("%d\n", s[i]);
fclose(stdin);
fclose(stdout);
return 0;
}