Cod sursa(job #2431343)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 18 iunie 2019 23:46:03
Problema Reguli Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#define DIM 500010
using namespace std;

ifstream fin ("reguli.in");
ofstream fout ("reguli.out");
long long v[DIM];
pair <long long, int> d[DIM];
int n,i,j,k;
int main (){

    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    d[++k] = make_pair(v[2]-v[1],1);
    for (i=2;i<n;i++){
        long long dif = v[i+1]-v[i];
        int poz = (i%k)?(i%k):(k);
        if (d[poz].first != dif){
            j = d[k].second+1;
            while (j <= i){
                d[++k] = make_pair(v[j+1]-v[j],j);
                j++;
            }}}
    fout<<k<<"\n";
    for (i=1;i<=k;i++)
        fout<<d[i].first<<"\n";

    return 0;
}