Cod sursa(job #1401706)

Utilizator robertstrecheStreche Robert robertstreche Data 26 martie 2015 08:37:37
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>

#define NMAX 500005

using namespace std;

long long n,k,prec,precc;
long long phi[NMAX],v[NMAX];

int main()
{
    freopen("reguli.in","r",stdin);
    freopen("reguli.out","w",stdout);
    scanf("%lld %lld",&n,&prec);n--;
    for (int i=1;i<=n;i++)
    {
        scanf("%lld",&v[i]);
        precc=v[i];
        v[i]-=prec;
        prec=precc;
    }
    //for (int i=1;i<=n;i++)
    //  printf("%d ",v[i]);

    for (long long i=2;i<=n;i++)
      {
          while (k && v[k+1]!=v[i])
            k=phi[k];
          if (v[k+1]==v[i])k++;
          phi[i]=k;
      }
    printf("%lld\n",n-phi[n]);
    for (int i=1;i<=n-phi[n];i++)
    printf("%lld\n",v[i]);

    fclose(stdin);
    fclose(stdout);
}