Cod sursa(job #897471)

Utilizator iuli1505Parasca Iuliana iuli1505 Data 27 februarie 2013 20:52:58
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<cstdio>
#define nmax 500010
long long a[nmax],val,x;
int pi[nmax],n,i,q;
int main()
{
    freopen("reguli.in","r",stdin);
    freopen("reguli.out","w",stdout);
    scanf("%d%lld", &n, &val);
    --n;
    for(i=1;i<=n;i++)
    {
        scanf("%lld ", &x);
        a[i]=x-val;
        val=x;
    }
    for(i=2;i<=n;++i)
    {
        while(q&&a[q+1]!=a[i])
            q=pi[q];
        if(a[q+1]==a[i])
            ++q;
        pi[i]=q;
    }
    val=n-pi[n];
    printf("%lld\n", val);
    for(i=1;i<=n-pi[n];i++)
        printf("%lld\n", a[i]);
    return 0;


}