C++!! Левый и правый двоичный поиск Дано два списка чисел, числа в первом списке упорядочены по неубыванию. Для каждого числа из второго списка определите номер первого и последнего появления этого числа в первом списке. В данной задаче можно пользоваться встроенными функциями.
Входные данные
В первой строке входных данных записаны два числа N и M (1≤N,M≤20000). Во второй строке записаны N упорядоченных по неубыванию целых чисел — элементы первого списка. В третьей строке записаны M целых неотрицательных чисел — элементы второго списка. Все числа в списках — целые 32-битные знаковые.
Выходные данные
Программа должна вывести M строчек. Для каждого числа из второго списка нужно вывести номер его первого и последнего вхождения в первый список. Нумерация начинается с единицы. Если число не входит в первый список, нужно вывести одно число 0.

Примеры

Ввод
10 5
1 1 3 3 5 7 9 18 18 57
57 3 9 1 179
10 10

Вывод
3 4
7 7
1 2
0

Можно этот код переделать в С++!
s1 = input()
s2 = input()
s3 = input()
A = set(map(int, s2.split()))
B = list(map(int, s3.split()))
for b in B:
if b in A:
print('YES')
else:
print('NO')
Только чтоб работал!

Gromozeka1 Gromozeka1    1   30.07.2021 09:54    75

Ответы
Акируя Акируя  30.07.2021 10:00

есть библиотечные функции upper_bound и lower_bound, достаточно их вызвать и всё

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика