Pagini recente » Cod sursa (job #930576) | Cod sursa (job #2877077) | Cod sursa (job #2233457) | Cod sursa (job #1918551) | Cod sursa (job #2637411)
#include <fstream>
#include <iostream>
#define NMAX 500001
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int v[NMAX], n;
int p[NMAX];
void prefix() {
int res = 0;
p[1] = 0;
int i = 1, j = 2;
while (j < n) {
if (v[i] == v[j]) {
p[j] = i;
if (i >= j / 2 && j % (j - i) == 0)
res = j - i;
++i;++j;
}
else
if (i == 1) {
p[j] = 0;
++j;
}
else
i = p[i - 1] + 1;
}
fout << res << '\n';
for (i = 1;i <= res;++i)
fout << v[i] << '\n';
}
int main() {
fin >> n;
for (int i = 0;i < n;++i)
fin >> v[i];
for (int i = n - 1;i > 0;--i) {
v[i] -= v[i - 1];
}
prefix();
return 0;
}