Cod sursa(job #2203048)

Utilizator emiemiEmi Necula emiemi Data 10 mai 2018 19:53:01
Problema Reguli Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");

long long v[500005], u[500005];

int main() {
	long long x, y;
	long long n, i;

	f >> n >> x;
	for (i = 1; i < n; ++i) {
		f >> y;
		v[i] = y - x;
		x = y;
	}

	long long k = 0;
	u[1] = 0;
	for (i = 2; i < n; ++i) {
		while (k != 0 && v[k + 1] != v[i])
			k = u[k];
		if (v[k + 1] == v[i])
			++k;
		u[i] = k;
	}

	long long nr = 0;
	for (i = 1; i < n; ++i)
		if (u[i] == 0)
			nr = i;

	g << nr << '\n';
	for (i = 1; i <= nr; ++i)
		g << v[i] << '\n';

	return 0;
}