Rezolvare BAC Informatica 2009 – Varianta 60 – Subiectul al III-lea problema 3

Mai jos puteti gasi rezolvarea problemei 3 de la subiectul III din varianta 60 pentru examenul de bacalaureat din anul 2009


#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream f("bac.txt");
int v[101],x,i,a,n = 0;
while (f >> a)
v[n++] = a;
x = v[n - 1];
n--;
//facem cautare binara, sirul fiind ordonat crescator
int stanga = 0,dreapta = n - 1,gasit = 0;
while (stanga <= dreapta) {
/*recomandam folosirea formulei de mai jos
pentru calculul mijlocului (see: overhead)
*/
int mijloc = stanga + (dreapta - stanga) / 2;
if (v[mijloc] == x) {
gasit = 1;
break;
} else if (v[mijloc] < x)
stanga = mijloc + 1;
else
dreapta = mijloc - 1;
}
if (gasit == 0)
cout<<"NU";
else
cout<<"DA";
return 0;
}

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *