Cerința
Se dă un vector x cu n elemente numere naturale, ș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,m ≤ 1000
elementele celor 2 vectori vor fi mai mici decât 1.000.000.000
Răspunsuri la întrebare
Răspuns de
8
#include <iostream>
#include <algorithm>
using namespace std;
int n,m,a[25000],b[200000];
int main()
{
cin >> n;
for(int i=0;i<n;i++)
cin >> a[i];
cin >> m;
for(int i=0;i<m;i++)
cin >> b[i];
for(int i=0;i<m;i++)
if(binary_search(a,a+n,b[i]))
cout << 1 << " ";
else
cout << 0 << " ";
return 0;
}
#include <algorithm>
using namespace std;
int n,m,a[25000],b[200000];
int main()
{
cin >> n;
for(int i=0;i<n;i++)
cin >> a[i];
cin >> m;
for(int i=0;i<m;i++)
cin >> b[i];
for(int i=0;i<m;i++)
if(binary_search(a,a+n,b[i]))
cout << 1 << " ";
else
cout << 0 << " ";
return 0;
}
stassahul:
Da in general se putea de uitat la denumirea problemei pe pbinfo si de gasit solutia xD
Răspuns de
5
Solutia clasica (fara STL) la problema de mai sus :
#include <iostream>
using namespace std;
int x[25005],n,t,i,j,s,d,p,m,mi;
int main()
{
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
cin>>m;
for(i=1;i<=m;i++)
{
cin>>t;
s=1; d=n; p=0;
while(s<=d)
{
mi=(s+d)/2;
if(x[mi]==t)
{
p=mi;
s=d+1;
} else
if(t<x[mi]) d=mi-1;
else s=mi+1;
}
if(p!=0) cout<<1<<" ";
else cout<<0<<" ";
}
return 0;
}
#include <iostream>
using namespace std;
int x[25005],n,t,i,j,s,d,p,m,mi;
int main()
{
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
cin>>m;
for(i=1;i<=m;i++)
{
cin>>t;
s=1; d=n; p=0;
while(s<=d)
{
mi=(s+d)/2;
if(x[mi]==t)
{
p=mi;
s=d+1;
} else
if(t<x[mi]) d=mi-1;
else s=mi+1;
}
if(p!=0) cout<<1<<" ";
else cout<<0<<" ";
}
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Studii sociale,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă