정렬되어있는 배열에서, 특정 데이터를 찾기 위해 모든 데이터를 순차적으로 확인하는 대신, 탐색 범위를 절반으로 줄여가며 찾는 탐색 방법
이분 탐색은 O(lonN)의 시간복잡도를 가지므로, 선형 탐색에 비해 빠르다는 장점이 있다.

n = int(input())
arr = list(map(int, input().split()))
m = int(input())
test = list(map(int, input().split()))
arr.sort()
def BS(k):
st, en = 0, n-1
while st <= en:
mid = (st + en) // 2
if arr[mid] == k:
return 1
elif arr[mid] < k:
st = mid + 1
elif arr[mid] > k:
en = mid - 1
return 0
for k in test:
print(BS(k))

import sys
k, n = map(int, sys.stdin.readline().split())
l = []
for _ in range(k):
l.append(int(sys.stdin.readline()))
# upper bound
st, en = 1, sum(l) // n # st를 1로 설정해야 ZeroDivision 발생 안 함
while st <= en:
mid = (st + en) // 2
num = sum(list(i // mid for i in l))
if num >= n: # 만족
st = mid + 1
else:
en = mid - 1
print(en)