Pagini recente » Istoria paginii runda/road_to_ioi_2 | Cod sursa (job #970841) | Cod sursa (job #1353384) | Cod sursa (job #24712) | Cod sursa (job #19951)
Cod sursa(job #19951)
#include<fstream>
#include<iostream>
//#include <vector>
using namespace std;
#define inputfile "reguli.in"
#define outputfile "reguli.out"
int main() {
long N,K,i,j;
long x[500000];
int periodic;
ifstream in(inputfile);
ofstream out(outputfile);
in>>N;
//vector <long> x(N);
for (long i = 0; i<N; i++) in>>x[i];
in.close();
for (long i = N-1; i>=1; i--) x[i]-=x[i-1];
//BOOL periodic;
K = 1;
do{
periodic = 1;
while((K<N)&&(x[1]!=x[1+K])) K++;
if(K==N) {K--;break;}
for(i=1;((i<=K)&&(periodic));i++){
for(j=i+K;((j<N)&&(x[i]==x[j]));j+=K);
if(j<N) {periodic = 0;K++;}
}
}while(!periodic);
out<<K<<endl;
for(i=1;i<=K;i++)
out<<x[i]<<endl;
out.close();
//system("PAUSE");
return 0;
}