Cod sursa(job #1340662)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 11 februarie 2015 22:49:30
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;

ifstream fin("reguli.in");
ofstream fout("reguli.out");
long long N , v[500002] ,i ,P[500002], x, L, k, y;
int main(){
    fin>>N;
    fin>>x;
    N -- ;
    for( i = 1; i <= N; i ++){
        fin >> y;
        v[i] = y - x;
        x = y;
    }
    for(i = 2;i <= N ; i ++){
        if( L != 0 && v[i] != v[L + 1])
            L = P[L];
        if(v[i] == v[L+1])
            L ++;
        P[i] = L;
    }
    k = N - P[N];
    fout<< k << '\n';
    for( i = 1;i <= k ;i ++)
        fout << v[i] << '\n';
    fin.close();fout.close();
    return 0;
}