Pagini recente » Borderou de evaluare (job #2425583) | Borderou de evaluare (job #1908794) | Cod sursa (job #2051663) | Profil Ion_Apelia | Cod sursa (job #1340653)
#include <fstream>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int N , v[500002] ,i ,P[500002], x, L, k;
int main(){
fin>>N;
fin>>x;
N--;
for ( i = 1; i <= N; i ++){
fin >> v[i];
int y = v[i] - x;
x = v[i];
v[i] = y;
}
for(i = 2;i <= N ; i ++){
if( L != 0 && v[i] != v[L + 1])
L = P[L];
if(v[i] == v[L+1])
L ++;
P[i] = L;
}
k = N - P[N];
fout<< k << '\n';
for( i = 1;i <= k ;i ++)
fout << v[i] << '\n';
fin.close();fout.close();
return 0;
}