Cod sursa(job #857305)

Utilizator repp4raduRadu-Andrei Szasz repp4radu Data 17 ianuarie 2013 18:20:57
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>

#define MAX 500005

using namespace std;

int N, V[MAX], Pi[MAX];

int main()
{
    ifstream in("reguli.in"); in>>N;
    for(int i = 1; i <= N; i++) in>>V[i];
    for(int i = 1; i < N; i++) V[i] = V[i + 1] - V[i];
    N--;
    for(int i = 2, q = 0; i <= N; i++)
    {
        while(q && V[q + 1] != V[i])
            q = Pi[q];
        if(V[q + 1] == V[i]) q++;
        Pi[i] = q;
    }
    ofstream out("reguli.out");
    N -= Pi[N];
    out<<N<<"\n";
    for(int i = 1; i <= N; i++) out<<V[i]<<"\n";
    out.close();
    return 0;
}