Cod sursa(job #1107555)

Utilizator TeofilosTeofil Teofilos Data 13 februarie 2014 22:50:02
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>
#define lm 500010

int n, a[lm];
long long x, c, v[lm];

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