Cod sursa(job #1443774)

Utilizator adina0822Ciubotaru Adina-Maria adina0822 Data 28 mai 2015 17:02:11
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
using namespace std;
#include<fstream>
#include<string.h>
FILE *f=fopen("reguli.in","r");
FILE *g=fopen("reguli.out","w");

long long int n;
long long int s[500002];
long long int pi[500002];

void make_prefix()
{
    int q=0,i;
    for(pi[1]=0,i=2; i<=n-1; i++)
    {
        while(q && s[i]!=s[q+1])
        q=pi[q];
        if(s[i]==s[q+1])
        q++;
        pi[i]=q;
    }

}

int main ()
{
   long long int i,x,y,nr;
   fscanf(f,"%lld%lld",&n,&x);

   for(i=2; i<=n; i++)
   {
       fscanf(f,"%lld",&y);
       s[i-1]=y-x;
       x=y;
   }

   make_prefix();


   x=n-1-pi[n-1];
   fprintf(g,"%lld\n",x);
   for(i=1;i<=x; i++) fprintf(g,"%lld\n",s[i]);







  return 0;

}