Pagini recente » Cod sursa (job #2428706) | Cod sursa (job #377985) | Cod sursa (job #1606954) | Cod sursa (job #589962) | Cod sursa (job #19242)
Cod sursa(job #19242)
#include<fstream>
#include<iostream>
using namespace std;
#define inputfile "reguli.in"
#define outputfile "reguli.out"
const long NMAX = 500000;
typedef signed long sl;
void ReadData(sl x[NMAX], long &N) {
ifstream in(inputfile);
in>>N;
for (long i = 0; i<N; i++)
in>>x[i];
in.close();
}
void WriteData(sl x[NMAX], long K) {
ofstream to(outputfile);
to<<K<<'\n';
for (long i = 1; i<=K ; i++)
to<<x[i]-x[i-1]<<'\n';
to.close();
}
long Solve(sl x[NMAX], long N) {
long i = 1, K = 1, j = 2;
while (j<N) {
if ( (x[i]-x[i-1]) == (x[j]-x[j-1]) )
i++;
else {
K++;
i = 1;
j = K;
}
j++;
}
return K;
}
int main() {
long N;
sl x[NMAX];
ReadData(x,N);
long K = Solve(x,N);
WriteData(x,N-1);
WriteData(x,K);
}