Cod sursa(job #1193424)

Utilizator ZenusTudor Costin Razvan Zenus Data 31 mai 2014 18:37:28
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <cstdio>

using namespace std;

#define NMAX 500005
#define LL long long

LL N,New,X,k,i,finish;
LL pi[NMAX],V[NMAX];

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

scanf("%lld",&N);
--N;

scanf("%lld",&X);
for (i=1;i<=N;++i)
{
    scanf("%lld",&New);
    V[i]=New-X;
    X=New;
}

for (i=2;i<=N;++i)
{
    while (k && V[k+1]!=V[i]) k=pi[k];

    if (V[k+1]==V[i]) ++k;
    pi[i]=k;
}

finish=(N-pi[N]);
printf("%lld\n",finish);
for (i=1;i<=finish;++i) printf("%lld\n",V[i]);

return 0;
}