Cod sursa(job #1401702)

Utilizator robertstrecheStreche Robert robertstreche Data 26 martie 2015 08:36:18
Problema Reguli Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 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("%d %d",&n,&prec);n--;
    for (int i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);
        precc=v[i];
        v[i]-=prec;
        prec=precc;
    }
    //for (int i=1;i<=n;i++)
    //  printf("%d ",v[i]);

    for (int 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("%d\n",n-phi[n]);
    for (int i=1;i<=n-phi[n];i++)
    printf("%d\n",v[i]);

    fclose(stdin);
    fclose(stdout);
}