Cod sursa(job #2554595)

Utilizator CyborgSquirrelJardan Andrei CyborgSquirrel Data 23 februarie 2020 10:31:31
Problema Reguli Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>

using namespace std;

typedef long long lint;

ifstream fin("reguli.in");
ofstream fout("reguli.out");

int n;
lint v[500041];
int pr[500041];

int rezero = 0;

void precalc(){
	int q = 0;
	for(int i = 1; i < n; ++i){
		while(v[i] != v[q] && q>0){
			q = pr[q-1];
		}
		if(v[i] == v[q]){
			q++;
		}
		pr[i] = q;
		if(q == 0){
			rezero = i;
		}
	}
	rezero++;
}

int main(){
	fin >> n;n--;
	lint a, b;
	fin >> a;
	for(int i = 0; i < n; ++i){
		b = a;fin >> a;
		v[i] = a-b;
	}
	precalc();
	
	fout << rezero << "\n";
	for(int i = 0; i < rezero; ++i){
		fout << v[i] << "\n";
	}
	return 0;
}