Cod sursa(job #1004995)

Utilizator SpiriFlaviuBerbecariu Flaviu SpiriFlaviu Data 3 octombrie 2013 21:34:12
Problema Reguli Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>

using namespace std;

ifstream fin("reguli.in");
ofstream fout("reguli.out");

int n;
long long dif[500001],x,y;

int main()
{
    fin>>n;
    fin>>x;
    for(int i=1;i<n;i++)
    {
        fin>>y;
        dif[i] = y - x;
        x = y;
    }
    int k = 1;
    int ind = 1;
    for(int i=2;i<n;i++)
        if(dif[i] == dif[ind])
        {
            ++ind;
            if(ind > k)
                ind -= k;
        }
        else
            k++,ind = 1;
    fout<<k<<'\n';
    for(int i=1;i<=k;i++)
        fout<<dif[i]<<'\n';


    fin.close();
    fout.close();
    return 0;
}