Pagini recente » Cod sursa (job #61392) | Cod sursa (job #2803491) | Cod sursa (job #2961140) | Cod sursa (job #170984) | Cod sursa (job #1894949)
#include <fstream>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int n, x, y, i, j, lun;
int v[ 500010 ], T[ 500010 ];
int main()
{
fin >> n;
fin >> x;
for ( i = 1 ; i < n ; i++ ) {
fin >> y;
v[ i - 1 ] = y - x;
x = y;
}
lun = n - 1;
i = 1; j = 0;
while ( i < lun ) {
if ( v[ i ] == v[ j ] ) {
T[ i ] = j + 1;
i++; j++;
} else if ( j != 0 ) {
while ( j != 0 && v[ i ] != v[ j ] )
j = T[ j - 1 ];
} else {
i++;
}
}
fout << lun - T[ lun - 1 ] << '\n';
for ( i = 0 ; i < lun - T[ lun - 1 ] ; i++ ) {
fout << v[ i ] << '\n';
}
return 0;
}