Cod sursa(job #2353159)

Utilizator _Victor_Victor Ciobanu _Victor_ Data 23 februarie 2019 22:11:00
Problema Reguli Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.45 kb
#include <bits/stdc++.h>

using namespace std;

int P[500010],X[500010],n;

int main(){
	ifstream cin("reguli.in");
	ofstream cout("reguli.out");
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>X[i];
		if(i)X[i-1]=X[i]-X[i-1];	
	}
	int p=0,l=n-1;
	for(int i=1;i<l;i++){
		while(p && X[i]!=X[p]){
			p=X[p-1];
		}
		if(X[i]==X[p]){
			p++;
		}
		P[i]=p;
	}
	l-=P[l-1];
	cout<<l<<'\n';
	for(int i=0;i<l;i++)cout<<X[i]<<'\n';
	return 0;
}