1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# Uses python3
import sys
def binarySearchRecursive(a, low, high, key):
if high < low:
return -1
mid = (int) (low + (high - low) / 2)
if key == a[mid]:
return mid
elif key < a[mid]:
return binarySearchRecursive(a, low, mid - 1, key)
else:
return binarySearchRecursive(a, mid + 1, high, key)
def binarySearch(a, key):
return binarySearchRecursive(a, 0, len(a) - 1, key)
if __name__ == '__main__':
input = sys.stdin.read()
data = list(map(int, input.split()))
n = data[0]
m = data[n + 1]
a = data[1 : n + 1]
for x in data[n + 2:]:
# replace with the call to binary_search when implemented
print(binarySearch(a, x), end = ' ')
|