Pagini recente » Cod sursa (job #2637911) | Cod sursa (job #330388) | Cod sursa (job #583737) | Cod sursa (job #2329111) | Cod sursa (job #3163519)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ( "reguli.in" );
ofstream fout ( "reguli.out" );
const int N = 5e5;
int v[N], s[N], p[N];
int n;
void kmp () {
int k = 0;
for ( int i = 1; i < n; i++ ) {
while ( k != 0 && s[k] != s[i] )
k = p[k - 1];
if ( s[k] == s[i] )
k++;
p[i] = k;
}
}
int main () {
fin >> n;
for ( int i = 0; i < n; i++ )
fin >> v[i];
for ( int i = 0; i < n; i++ )
s[i] = v[i + 1] - v[i];
n--;
kmp();
int length = n - p[n - 1];
fout << length << "\n";
for ( int i = 0; i < length; i++ )
fout << s[i] << "\n";
return 0;
}