Pagini recente » Cod sursa (job #43530) | Cod sursa (job #2754223) | Cod sursa (job #2669001) | Cod sursa (job #2958431) | Cod sursa (job #1310203)
#include <fstream>
#include <vector>
#include <limits>
const long long INF=std::numeric_limits<long long>::max();
int main(){
std::ifstream fin("reguli.in");
std::ofstream fout("reguli.out");
unsigned n; fin>>n;
std::vector<long long> dif(n);
dif[0]=INF;
long long old; fin>>old;
for(unsigned i=1;i<n;++i){
long long x; fin>>x;
dif[i]=x-old;
old=x;
}
unsigned L=1;
unsigned sf=0;
for(unsigned i=1;i<n;++i){
if(dif[i]==dif[i-L] && (i==n-1||dif[i+1-L]==dif[i+1]||sf+1==L)) ++sf;
else{
sf=0;
L=i;
}
if(sf==L){
sf=0;
}
}
fout<<L<<'\n';
for(unsigned i=1;i<=L;++i) fout<<dif[i]<<'\n';
}