Cod sursa(job #1523171)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 12 noiembrie 2015 14:14:17
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<cstdio>
using namespace std;
long long v[500010],prefix[500010],n;
void build_prefix(){
    int i=0,j;
    for(j=2;j<n;j++){
        while(v[i+1]!=v[j]&&i!=0)
            i=prefix[i];
        if(v[i+1]==v[j]&&i+1!=j)
            i++;
        prefix[j]=i;
    }
}
int main(){
    freopen("reguli.in","r",stdin);
    freopen("reguli.out","w",stdout);
    long long i,x,y,l;
    scanf("%lld%lld",&n,&x);
    for(i=2;i<=n;i++){
        scanf("%lld",&y);
        v[i-1]=y-x;
        x=y;
    }
    build_prefix();
    l=n-1-prefix[n-1];
    printf("%lld\n",l);
    for(i=1;i<=l;i++)
        printf("%lld\n",v[i]);
    return 0;
}