Cod sursa(job #1385049)

Utilizator horiainfoTurcuman Horia horiainfo Data 11 martie 2015 17:31:10
Problema Reguli Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <cstdio>
#define NMAX 500001
using namespace std;
ofstream fout("reguli.out");
long long n,a,b,dif[NMAX],v,L,vmax;
void solve()
{
    freopen("reguli.in","r",stdin);
    scanf("%d",&n);
    scanf("%d%d",&b,&a);
    dif[1]=a-b; b=a;
    L=1; vmax=1;
    for(int i=3;i<=n;i++)
    {
        scanf("%d",&a);
        dif[i-1]=a-b;
        b=a;
        if(dif[i-1-L]==dif[i-1])
            v++;
        else
        {
            if(dif[i-1]==dif[1])
                v=1,L=i-2;
            else v=0,L=i-1;
            vmax=L;
        }
        if(v==L) v=0;
    }
    fout<<vmax<<'\n';
    for(int i=1;i<=vmax;i++)
        fout<<dif[i]<<'\n';
}

int main()
{
    solve();
    return 0;
}