이분 탐색 정렬
/* binary search */
#include <iostream>
int a[100005];
int n;
int bainarysearch(int target){
int start = 0;
int end = n-1;
while(start <= end){
int mid = (start + end) / 2;
if(a[mid] < target)
start = mid + 1;
else if(a[mid] > target)
end = mid - 1;
else
return 1;
}
/* start > end 경우 while 문 탈출 */
return 0;
}
/* lower_idx = lower_bound(stl 함수) */
/* (반대) upper_bound(stl 함수) */
int lower_idx(int target, int len){
int start = 0;
int end = len;
while(start < end){
int mid = (start + end) / 2;
if(a[mid] >= target) end = mid;
else strat = mid + 1;
}
return start;
}
int main(void){
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i];
sort(a, a + n); /* 배열 정렬 */
int m;
cin >> m;
while(m--){
int t;
cin >> t;
cout << binarysearch(t) << '\\n';
}
}