Cod sursa(job #1606095)

Utilizator Darius15Darius Pop Darius15 Data 19 februarie 2016 20:45:40
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>

using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
int n,a[500001],d[500001],pr[500001],k,MAX,i;
int main()
{
    f>>n;
    for (i=1;i<=n;i++)
      f>>a[i];
    for (i=1;i<=n-1;i++)
      d[i]=a[i+1]-a[i];
      k=0;
      pr[1]=0;
    for (i=2;i<=n-1;i++)
    {
      while(k && d[k+1]!=d[i])
        k=pr[k];
      if (d[k+1]==d[i])
        k++;
      pr[i]=k;
    }
    g<<n-1-pr[n-1]<<'\n';
    for (i=1;i<=n-1-pr[n-1];i++)
      g<<d[i]<<'\n';
    return 0;
}