Cod sursa(job #1563577)

Utilizator serbanSlincu Serban serban Data 6 ianuarie 2016 12:10:30
Problema Reguli Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

vector<long long> r;

int main()
{
    freopen("reguli.in", "rt", stdin);
    freopen("reguli.out", "wt", stdout);

    int n;
    long long x1, x2; cin >> n >> x1 >> x2;
    r.push_back(x2 - x1); x1 = x2;
    for(int i = 2; i < n; i ++) {
        cin >> x2;
        if(r[(i - 1) % r.size()] != (x2 - x1)) {
            int in = r.size();
            while(r.size() < i) {
                for(int j = 0; j < in && r.size() < i; j ++)
                    r.push_back(r[j]);
            }
            r[r.size() - 1] = x2 - x1;
        }
        x1 = x2;
    }
    cout << r.size() << "\n";
    for(int i = 0; i < r.size(); i ++) cout << r[i] << "\n";
    return 0;
}