728x90
반응형
문제는 여기!
#include <bits/stdc++.h>
using namespace std;
int N, M;
vector<int> vN, vM;
void find(int x){
int start = 0, end = N-1, std = (N-1)/2;
while(1){
if(start > end){
cout << 0 << '\n';
return;
}
if(x == vN[std]){
cout << 1 << '\n';
return;
} else if(x < vN[std]){
end = std - 1;
std = (start + end)/2;
} else {
start = std + 1;
std = (start + end)/2;
}
}
}
void solve(){
for(int i=0; i<M; i++){
int x = vM[i];
find(x);
}
}
void input() {
cin >> N;
for(int i=0; i<N; i++){
int x;
cin >> x;
vN.push_back(x);
}
sort(vN.begin(), vN.end());
cin >> M;
for(int i=0; i<M; i++){
int x;
cin >> x;
vM.push_back(x);
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
input();
solve();
return 0;
}
728x90
반응형
'알고리즘 > 이진탐색' 카테고리의 다른 글
[백준/이진탐색/C++] 2512번 예산 (0) | 2023.03.16 |
---|---|
[백준/C++] 1822번 차집합 (0) | 2023.02.27 |