Informatică, întrebare adresată de Trollea, 8 ani în urmă

Se citeşte de la tastatură un şir de k intervale, pentru fiecare fiind introduse cele două limite [a,b] unde a


boiustef: ????
Trollea: Se citeşte de la tastatură un şir de k intervale, pentru fiecare fiind introduse cele două
limite [a.b] unde alimitelor intervalului ce conţine cele mai multe valori întregi.
Exemplu:
Pentru k=4 şi şirul de numere: 2 6 4 8 3 22 5 10 se va afişa intervalul (3 22).
boiustef: clar, dar pot fi mai multe intervale cu aceeaşi lungime... ce răspuns se dă???

Răspunsuri la întrebare

Răspuns de neoclipcs
3

Răspuns:

#include <iostream>

using namespace std;

int main()

{

int k, a, b, l, cnt=0, max=-1, v[100];

cin >> k;

for(int i = 0; i < k; i++) {

cin >> a >> b;

l = b-a+1;

if(l > max) {

l = max;

v[0] = a;

v[1] = b;

cnt = 2;

} else if (l == max) {

cnt += 2;

v[cnt] = a;

v[cnt+1] = b;

}

}

for(int i = 0; i < cnt; i += 2)

cout << v[i] << ' ' << v[i+1];

return 0;

}

Explicație:

Am luat in considerare faptul ca pot fi mai multe intervale cu aceeasi lungime. Daca problema are restrictii si nu le.ai pus tu in cerinta, modifica tu codul, sau, daca nu reusesti, imi dai mesaj si te ajut. De asemenea, mi.a fost dificil sa il declar pe v[] daca nu stiam limitele problemei.

Alte întrebări interesante