В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
funnybotan2000
funnybotan2000
01.03.2023 01:02 •  Информатика

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')
Только чтоб работал!

Показать ответ
Ответ:
mixtalalai2017
mixtalalai2017
30.07.2021 10:00

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

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота