Pagini recente » Cod sursa (job #319960) | Cod sursa (job #139261) | Cod sursa (job #938984) | Cod sursa (job #1541069) | Cod sursa (job #19109)
Cod sursa(job #19109)
#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 = 0;
for (long j = 2; j<N; j++)
if ( (x[j]-x[j-1]) == (x[i]-x[i-1]) ) {
i++;
if (K == 0) K = j-1;
}
else {
i = 1;
K = 0;
if ( (x[j]-x[j-1]) == (x[i]-x[i-1]) ) {
i++;
if (K == 0) K = j-1;
}
}
if (K == 0) K = N-1;
return K;
}
int main() {
long N;
sl x[NMAX];
ReadData(x,N);
long K = Solve(x,N);
WriteData(x,K);
}