Cod sursa(job #1729048)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 14 iulie 2016 01:49:25
Problema Reguli Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#include <algorithm>
#define NMAX 500005

using namespace std;

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

int n;
long long v[NMAX];
int pref[NMAX];

void prefix() {
	int i,j=1;

	for(i=3;i<=n;++i) {
		while(j>0 && v[j+1]!=v[i]) j=pref[j];
		j=max(j,1);

		if(v[j+1]==v[i]) ++j;
		pref[i]=j;
	}
}

int main() {
	int i,last=0;

	fin>>n;
	for(i=1;i<=n;++i) fin>>v[i];
	for(i=n;i>0;--i) v[i]-=v[i-1];

	prefix();

	//for(i=1;i<=n;++i) fout<<pref[i]<<' ';

	for(i=2;i<=n-pref[n]+1;++i) fout<<v[i]<<'\n';
}