Pagini recente » Cod sursa (job #371033) | Cod sursa (job #1414775) | Cod sursa (job #20384) | Cod sursa (job #1608360) | Cod sursa (job #3163540)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int s[500002], p[500002], s1[500002];
int main () {
ifstream cin ( "reguli.in" );
ofstream cout ( "reguli.out" );
int n, k = 0, i, x;
cin >> n;
for( i = 0; i < n; i++ )
cin >> s1[i];
n--;
for( i = 0; i < n; i++ )
s[i] = s1[i+1] - s1[i];
for ( 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 length = n - p[n - 1];
cout << length << "\n";
for ( int i = 0; i < length; i++ )
cout << s[i] << "\n";
return 0;
}