AJUTOR VA ROG!
Fișierul text bac.txt conține numere naturale din intervalul [1,104]: pe prima linie un număr n, pe a
doua linie un șir de n numere, iar pe fiecare dintre următoarele linii, până la finalul fișierului, câte o
pereche de numere, reprezentând extremitățile unui interval închis. Numerele aflate pe aceeași linie a
fișierului sunt în ordine crescătoare și sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran numărul de intervale care nu conțin niciun termen al
șirului aflat pe a doua linie a fișierului. Proiectați un algoritm eficient din punctul de
vedere al timpului de executare.
Exemplu: dacă fișierul conține numerele alăturate, se afișează pe ecran 3.
5
4 8 9 16 25
1 3
2 5
9 15
5 7
20 100
10 12
Răspunsuri la întrebare
Răspuns de
8
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("bac.txt");
int main(){
int n, a, b, x;
bool v[104]={0};
fin >> n;
for(int i=1;i<=n;i++)
fin >>x, v[x]=1;
int cnt=0;
while(fin >> a >> b){
bool verif=false;
for(int i=a;i<=b;i++)
if(v[i]!=0) verif=true;
if(verif==false) cnt++;
}
cout << cnt;
return 0;}
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă