Pagini recente » Cod sursa (job #669877) | Cod sursa (job #57758) | Cod sursa (job #212672) | Cod sursa (job #913289) | Cod sursa (job #18191)
Cod sursa(job #18191)
#include <stdio.h>
#define FIN "reguli.in"
#define FOUT "reguli.out"
#define NMAX 500001
#define INF 0x3f3f3f3f
long long x[NMAX], a[NMAX], sum;
int N;
int search (int k)
{
sum = 0;
for (int i = 1; i < k; ++ i)
{
a[i] = x[i] - x[i-1];
sum += a[i];
}
a[k] = x[k] - x[k-1];
sum += a[k];
long long rest = 0;
int lim = (N-1) % k;
if (lim == 0 && k != N-1)
lim = k;
for (int i = 1; i <= lim; ++ i)
rest += a[i];
if (x[N-1] == ((N-1) / k) * sum + rest + x[0])
return 1;
return 0;
}
int
main ()
{
freopen (FIN, "rt", stdin);
freopen (FOUT, "wt", stdout);
scanf ("%d", &N);
for (int i = 0; i < N; ++ i)
scanf ("%d", &x[i]);
for (int i = 1; i <= N; ++ i)
if (search (i))
{
printf ("%d\n", i);
for (int j = 1; j <= i; ++ j)
printf ("%lld\n", a[j]);
break;
}
return 0;
}