Cerinţa
Se dă un șir de n
numere reale, în ordine strict crescătoare. Să se determine un număr natural x
, cu proprietatea că în orice interval deschis având drept capete oricare două valori din șir se află cel puțin x
numere întregi.
Date de intrare
Fişierul de intrare intervale1.in
conţine pe prima linie numărul n
; urmează n
numere reale, în ordine strict crescătoare, separate prin spaţii, reprezentând elementele şirului, ce pot fi dispuse pe mai multe linii.
Date de ieşire
Fişierul de ieşire intervale1.out
va conţine pe prima linie numărul x
.
Restricţii şi precizări
1 ≤ n ≤ 100.000
- numerele reale din fișierul de intrare au valoarea absolută mai mică decât
100.000.000
Exemplu
intervale1.in
6 3.5 5.1 9.2 16 20.33 100
intervale1.out
2
#include <bits/stdc++.h> using namespace std; ifstream cin("intervale1.in"); ofstream cout("intervale1.out"); double a[1000001]; int n , mini; int main() { cin >> n; for(int i = 0 ; i < n ; ++i) cin >> a[i]; mini = 1000001; for(int i = 0 ; i < n-1 ; ++i) { if(a[i + 1] - a[i] < mini && (int)a[i] == (double)a[i] && (int)a[i + 1] == (double)a[i + 1]) mini = a[i + 1] - a[i] - 1; else if((int)a[i+1]-(int)a[i] < mini) mini = (int)a[i + 1] - (int)a[i]; } cout << mini; return 0; }