Cod sursa(job #1215518)

Utilizator mihaimusatMihai Musat mihaimusat Data 1 august 2014 11:53:39
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
#define NMAX 500002

int x[NMAX],p[NMAX];
int n,i,aux;

int main()
{
    freopen("reguli.in","r",stdin);
    freopen("reguli.out","w",stdout);
    scanf("%d",&n);
    for(i=0;i<n;++i)
        scanf("%d",&x[i]);
    aux=0;
    for(i=n-1;i>0;--i)
        x[i]=x[i]-x[i-1];
    --n;
    for(i=2;i<=n;++i)
    {
        while(x[aux+1]!=x[i]&&aux)
            aux=p[aux];
        if(x[aux+1]==x[i])
            ++aux;
        p[i]=aux;
    }
    n=n-p[n];
    printf("%d\n",n);
    for(i=1;i<=n;++i)
        printf("%d\n",x[i]);
    return 0;
}