Mai intai trebuie sa te autentifici.
Cod sursa(job #1340681)
Utilizator | Data | 11 februarie 2015 23:02:07 | |
---|---|---|---|
Problema | Reguli | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
long long N , v[500005] ,i ,P[500005], x, L, k, y;
int main(){
fin>>N;
fin>>x;
for( i = 1; i <= N; i ++){
fin >> y;
v[i] = y - x;
x = y;
}
N -- ;
P[1] = L =0;
for(i = 2;i <= N ; i ++){
while( 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 << 1LL * v[i] << "\n";
fin.close();fout.close();
return 0;
}