Cerința
Se dă un vector x
cu n
elemente numere naturale, ordonate crescător, și un vector y
cu m
elemente, de asemenea numere naturale. Verificați pentru fiecare element al vectorului y
dacă apare în x
.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi cele n
elemente ale vectorului x
. Apoi și citește m
și cele m
elemente ale lui y
.
Date de ieșire
Programul va afișa pe ecran m
valori 0
sau 1
, separate prin exact un spațiu. A j
-a valoare afișată este 1
, dacă al j
-lea element al șirului y
apare în x
, respectiv 0
în caz contrar.
Restricții și precizări
1 ≤ n ≤ 25000
1 ≤ m ≤ 200000
- elementele celor
2
vectori vor fi mai mici decât1.000.000.000
Exemplu
Intrare
7 1 2 5 6 9 10 14 8 8 14 9 14 16 15 4 2
Ieșire
0 1 1 1 0 0 0 1
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema CautareBinara:
# include <iostream>
using namespace std;
int n, x[25005], m, y[200005];
int caut(int st, int dr, int v[], int x)
{
if(st > dr)
return 0;
else
{
int m = (st + dr)/2;
if(v[m] == x)
return m;
if(v[m] > x)
return caut(1, m-1, v, x);
if(v[m] < x)
return caut(m+1, dr, v, x);
return 0;
}
}
void citire(int &n, int v[])
{
cin>>n;
for(int i = 1; i <= n ; i++)
cin>>v[i];
}
int main()
{
citire(n, x);
citire(m, y);
for(int i=1; i<=m; i++)
if((caut(1, n, x, y[i])))
cout<<1<<" ";
else
cout<<0<<" ";
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1155 CautareBinara
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1155 CautareBinara de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!