Se citesc n intervale, pentru fiecare interval se citește capătul din stânga și capătul din dreapta al intervalului. Să se determine numărul de ordine al intervalului cel mai scurt. (diferența între capătul din stânga și cel din dreapta este cea mai mică).
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n perechi de numere naturale, separate prin spații, reprezentând capetele intervalelor.
Date de ieşire
Programul afișează pe ecran numărul de ordine al intervalului cel mai scurt. Dacă există mai multe astfel de intervale se va afișa numărul de ordine al ultimului interval scurt.
Restricţii şi precizări
1 ≤ n ≤ 1000
intervalele sunt numerotate de la 1 la n
Exemplu
Date de intrare
6
7 9
6 7
8 12
11 10
10 6
11 13
Date de ieșire
4
(trebuie facut cu subprograme)
Răspunsuri la întrebare
Răspuns de
2
#include <iostream>
using namespace std;
int dif(int x, int y){
if(x>y) return x-y;
else return y-x;
}
void ordine(){
int n, i, a, b, min=-1, ordine;
cin>>n;
for(i=1;i<=n;i++){
cin>>a>>b;
if(min==-1 || min>=dif(a,b)){
min=dif(a,b); ordine=i;
}
}
cout<<'\n';
cout<<ordine;
}
int main()
{
ordine();
return 0;
}
Daniel4761:
Sigur
{
int n, i, a, b, min=-1, ordine;
cin >> n;
for( i = 1; i <= n; i++){
cin >> a >> b;
if(min== -1 || min>=dif(a,b)){
min = dif(a,b); ordine = i;
}
}
cout << '\n';
cout << ordine;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă