Cod sursa(job #1340678)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 11 februarie 2015 23:01:10
Problema Reguli Scor 80
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");
long long  N , v[500005] ,i ,P[500005], x, L, k, y;
int main(){
    fin>>N;
    fin>>x;
    for( i = 1; i <= N; i ++){
        fin >> y;
        v[i] = y - x;
        x = y;
    }
    N -- ;
    P[1] = L =0;
    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 << 1LL * v[i] << "\n";
    fin.close();fout.close();
    return 0;
}