Cod sursa(job #732936)

Utilizator Robert29FMI Tilica Robert Robert29 Data 11 aprilie 2012 11:22:27
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
FILE*f=fopen("reguli.in","r");
FILE*g=fopen("reguli.out","w");
long long v[500003],w[500003];
int n,p[500003];
void prep()
{
	int k=0;
	for(int i=2;i<=n;++i)
	{
		while(k&&w[i]!=w[k+1])
			k=p[k];
		if(w[k+1]==w[i])
			++k;
		p[i]=k;
	}
}
int main()
{
	fscanf(f,"%d",&n);
	for(int i=1;i<=n;++i)
	{
		fscanf(f,"%lld",&v[i]);
		w[i-1]=v[i]-v[i-1];
	}
	
	prep();
	int x=n-p[n-1]-1;
	fprintf(g,"%d\n",x);
	for(int i=1;i<=x;++i)
		fprintf(g,"%lld\n",w[i]);
	
	
	fclose(f);
	fclose(g);
	return 0;
}