没用y大的模板,上来直接判断,果不其然出现死循环,然后尝试对两个判断条件分别加一后解决。好处是不需要思考,无脑尝试2次即可。
N, Q = map(int, input().split())
sequence = list(map(int, input().split()))
Q_list = []
for i in range(Q):
Q_list.append(int(input()))
def detact(my_list, Qnum):
if len(my_list) > 1:
L = 0
R = len(my_list) - 1
while L < R:
mid = L + R >> 1
if my_list[mid] < Qnum:
L = mid + 1
else:
R = mid
begin_index = L
L = 0
R = len(my_list) - 1
while L < R:
mid = L + R + 1 >> 1
if my_list[mid] > Qnum:
R = mid - 1
else:
L = mid
end_index = L
if my_list[begin_index] != Qnum:
begin_index = -1
end_index = -1
if len(my_list) == 1:
if Qnum == my_list[0]:
begin_index = 0
end_index = 0
print(begin_index, end_index)
for i in range(Q):
detact(sequence, Q_list[i])