Pagini recente » Cod sursa (job #783340) | Cod sursa (job #1920191) | Cod sursa (job #139724) | Cod sursa (job #2839944) | Cod sursa (job #1993367)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("reguli.in");
ofstream out("reguli.out");
long long a[500010], n;
//array- valori de baza care dau relatia intre x-urile citite
void rezolvare(){
long perioada = 1;
long valSubs = 0;
long perSol = 0;
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 << perioada << '\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;
}