Răspuns :
#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;
}
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;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!