Cod sursa(job #1314084)

Utilizator OctaDuiu Octavian Octa Data 11 ianuarie 2015 15:18:52
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<cstdio>
using namespace std;
int i,j,n,x,y,t;
int v[500003],p[500003];

int main()
{
    freopen("reguli.in","r",stdin);freopen("reguli.out","w",stdout);

    scanf("%d %d",&n,&x);

    for(i=1;i<=n;i++)
    {
        scanf("%d ",&y);
        v[i]=y-x;
        x=y;
    }

    j=0;
    n--;
    for(i=2;i<=n;i++)
    {
        while(j && v[j+1]!=v[i])
            j=p[j];

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

      p[i]=j;
    }

    t=n-p[n];
    printf("%d\n",t);

    for(i=1;i<=t;i++)
        printf("%d\n",v[i]);

  return 0;
}