Mai intai trebuie sa te autentifici.
Cod sursa(job #2034350)
Utilizator | Data | 7 octombrie 2017 18:53:15 | |
---|---|---|---|
Problema | Reguli | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <cstdio>
#include <iostream>
#define N 500005
using namespace std;
int n;
int v[N], s[N];
int pi[N];
int main()
{
freopen("reguli.in", "r", stdin);
freopen("reguli.out","w", stdout);
int i, w=0;
cin >> n >> v[0];
for(i=1; i<n; i++)
{
cin >> v[i];
s[i-1] = v[i]-v[i-1];
}
n--;
for(i = 1; i < n; i++)
{
while(w && s[i] != s[w]) w = pi[w-1];
if(s[i] == s[w]) w++;
pi[i] = w;
}
cout<< n-pi[n-1] <<'\n';
for(i=0; i<n-pi[n-1]; i++)
cout<<s[i]<<'\n';
return 0;
}