Cod sursa(job #837091)

Utilizator Theorytheo .c Theory Data 17 decembrie 2012 12:50:19
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
#define ll long long
#define nmax 500008
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");

int N;
ll X[nmax];
int Pi[nmax];
int K;
int main(){
    fin >>N;
    for( int i = 0; i < N; i++) fin >> X[i];
    --N;
    for(int i = N ; i ; --i) X[i] -=X[i-1];



    int p = 0;Pi[1] = 0;
    for(int i = 2; i <= N; i++){
        for( ; p && X[i] != X[p + 1] ; p = Pi[p]);

        p += (X[i] == X[p + 1]);
        Pi[i] = p;
    }
    K = N - Pi[N];
    fout <<K <<'\n';
    for(int i = 1; i <= K; i++)
        fout << X[i]<<'\n';

        fin.close();
    return 0;
}