Pagini recente » Cod sursa (job #648650) | Cod sursa (job #317638) | Cod sursa (job #957888) | Cod sursa (job #1258227) | Cod sursa (job #1993373)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("reguli.in");
ofstream out("reguli.out");
long long a[500001], n;
//array- valori de baza care dau relatia intre x-urile citite
void rezolvare(){
int perioada = 1;
int valSubs = 0;
int perSol = n-1;
for(int i = 1; i < n; i++){
if(a[i] == a[i - perioada] && (a[i+1] == a[i + 1 - perioada] || i == n- 1 || valSubs == perioada - 1)){
valSubs++;
}
else{
valSubs = 0;
perioada = i;
}
if(valSubs == perioada){
valSubs = 0;
perSol = perioada;
}
}
out<<perSol <<'\n';
for(int i = 1; i <= perSol; i++)
out << a[i] << '\n';
}
void citire(){
long long xAnter, x;
in >> n;
in >> xAnter;
for(int i = 1; i < n; i++){
in >> x;
a[i] = x - xAnter;
xAnter = x;
}
}
int main(){
citire();
rezolvare();
return 0;
}