Pagini recente » Cod sursa (job #1233041) | Cod sursa (job #1015560) | Cod sursa (job #629265) | Cod sursa (job #1659578) | Cod sursa (job #1495273)
using namespace std;
#include<fstream>
ifstream in("reguli.in");
ofstream out("reguli.out");
const long long NMAX = 500000;
long long N;
long long s[NMAX + 2];
long long pi[NMAX + 2];
void make_prefix()
{
int q = 0, i;
for( pi[1] = 0, i = 2; i <= N - 1; i++ ) {
while( q && s[i] != s[ q + 1 ] ) {
q = pi[q];
}
if( s[i] == s[ q + 1 ] ) {
q++;
}
pi[i] = q;
}
}
int main ()
{
long long x, y;
in >> N >> x;
for( int i = 2; i <= N; i++ ) {
in >> y;
s[ i - 1 ] = y - x;
x = y;
}
make_prefix();
x = N - 1 - pi[N - 1];
out << x << '\n';
for( int i = 1; i <= x; i++ ) {
out << s[i] << '\n';
}
return 0;
}