В первой строке входных данных содержатся натуральные числа N и K(0<N,K⩽100000). Во второй строке задаются N элементов первого массива, отсортированного по возрастанию, а в третьей строке — K элементов второго массива. Элементы обоих массивов — целые числа, каждое из которых по модулю не превосходит 109.
Требуется для каждого из K чисел вывести в отдельную строку YES, если это число встречается в первом массиве и NO в противном случае.
Обратите внимание, требуется именно бинарный поиск. Решение с множествами, словарями, map'ами, set'ами и т.п. засчитываться не будут.
Дано два списка чисел, числа в первом списке упорядочены по неубыванию. Для каждого числа из второго списка определите номер первого и последнего появления этого числа в первом списке. Реализуйте для этого две функции: левый и правый бинарный поиск.
В первой строке входных данных записано два числа N и M(1⩽N,M⩽20000). Во второй строке записано N упорядоченных по неубыванию целых чисел — элементы первого списка. В третьей строке записаны M целых неотрицательных чисел — элементы второго списка.
Программа должна вывести 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
IDE
C: Бинарный поиск — подсчёт количества элементов, равных данному числу
Требуется определить в заданном массиве количество элементов, равных искомому числу.
В первой строке вводится количество чисел в массиве — натуральное число N, не превосходящее 105.
Во второй строке вводятся N натуральных чисел, не превосходящих 109, каждое следующее не меньше предыдущего.
В третьей строке вводится количество искомых чисел M — натуральное число, не превосходящее 106.
В четвертой строке вводится M натуральных чисел, не превосходящих 109.
Для каждого запроса выведите в отдельной строке одно число: количество элементов массива, равных числу-запросу. Элементы массива нумеруются с единицы.
Если в массиве нет такого числа, выведите 0.
В первой строке входных данных содержатся числа N и K(0<N,K<100001). Во второй строке задаются N чисел первого массива, отсортированного по неубыванию, а в третьей строке — K чисел второго массива. Каждое число в обоих массивах по модулю не превосходит 2⋅109.
Для каждого из K чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному. Если таких несколько, выведите меньшее из них.
Сегодня утром жюри решило добавить в вариант олимпиады еще одну, Очень Легкую Задачу. Ответственный секретарь Оргкомитета напечатал ее условие в одном экземпляре, и теперь ему нужно до начала олимпиады успеть сделать еще N копий. В его распоряжении имеются два ксерокса, один из которых копирует лист за x секунд, а другой — за y. Разрешается использовать как один ксерокс, так и оба одновременно. Можно копировать не только с оригинала, но и с копии.
Помогите ему выяснить, какое минимальное время для этого потребуется.
На вход программы поступают три натуральных числа N, x и y, разделенные пробелом (1⩽N⩽2⋅108,1⩽x,y⩽10).
Выведите одно число — минимальное время в секундах, необходимое для получения N копий.
Вычислить наименьшую сторону квадрата, в который можно уложить без наложений N одинаковых прямоугольников данного размера. Стороны прямоугольников параллельны сторонам квадрата, поворачивать прямоугольники нельзя.
Входной файл содержит три целых числа: w,h,N(1⩽w,h,n⩽109) — ширина и высота прямоугольника и их количество.
В выходной файл необходимо вывести ответ на поставленную задачу — длину стороны квадрата.
Дано N отрезков провода длиной L1,L2,…,LN сантиметров.
Требуется с помощью разрезания получить из них K равных отрезков как можно большей длины, выражающейся целым числом сантиметров. Если нельзя получить K отрезков длиной даже 1 см, вывести 0.
В первой строке находятся числа N и K(1⩽N⩽10000,1⩽K⩽10000). В следующих N строках — L1,L2,…,LN(100⩽Li⩽107), все числа целые, по одному числу в строке.
Требуется вывести одно число — полученную длину отрезков.
На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное расcтояние между коровами было как можно больше.
В первой строке вводятся числа N(2<N<10001) — количество стойл и K(1<K<N) — количество коров. Во второй строке задаются N натуральных чисел в порядке возрастания — координаты стойл (координаты не превосходят 109).
Выведите одно число — наибольшее возможное допустимое расстояние.
В одной театральной кассе есть в продаже билеты любой стоимости, выражающейся натуральным числом. При покупке билетов по цене за билет от A до B рублей включительно нужно дополнительно оплатить сервисный сбор в размере C процентов от номинальной стоимости билетов (сервисный сбор не обязательно выражается целым числом рублей, но всегда выражается целым числом копеек). При покупке билетов стоимостью менее A рублей за билет, а также более B рублей за билет, сервисный сбор не берется.
У вас есть X рублей и вам нужно K билетов одинаковой цены (цена обязательно должна выражаться натуральным числом рублей, 0 не считается натуральным). Билеты какого самого дорогого номинала вы можете себе позволить?
Если на имеющиеся деньги невозможно приобрести ни одного билета, выведите 0. Иначе выведите натуральное число — номинальную стоимость приобретённых билетов.
Высокое здание, состоящее из N этажей, оснащено только одним лифтом. Парковка находится ниже фундамента здания, что соответствует одному этажу ниже первого. Этажи пронумерованы от 1 до N снизу вверх. Про каждый этаж известно количество человек, желающих спуститься на лифте на парковку. Пусть для i-го этажа эта величина равна Ai. Известно, что лифт не может перевозить более C человек единовременно, а также то, что на преодоление расстояния в один этаж (не важно, вверх или вниз) ему требуется P секунд. Какое наибольшее количество человек лифт может перевезти на парковку за T секунд, если изначально он находится на уровне парковки?
В первой строке входного файла содержатся целые числа N,C,P,T. Вторая строка содержит последовательность N целых чисел A1,A2,…,AN.
Ограничения: 1⩽N⩽100,1⩽C⩽109,1⩽P⩽109,1⩽T⩽109,0⩽Ai⩽109. Сумма всех значений последовательности не превосходит 109.
Выведите наибольшее количество человек, которое лифт успеет перевезти на парковку.
Организаторы детского праздника планируют надуть для него M воздушных шариков. С этой целью они пригласили N добровольных помощников, i-й среди которых надувает шарик за Ti минут, однако каждый раз после надувания Zi шариков устаёт и отдыхает Yi минут.
Теперь организаторы праздника хотят узнать, через какое время будут надуты все шарики при наиболее оптимальной работе помощников, и сколько шариков надует каждый из них. Если помощник надул шарик, и должен отдохнуть, но больше шариков ему надувать не придётся, то считается, что он закончил работу сразу после окончания надувания последнего шарика, а не после отдыха.
В первой строке входных данных задаются числа M и N(0⩽M⩽15000,1⩽N⩽1000). Следующие N строк содержат по три целых числа — Ti,Zi и Yi соответственно (1⩽Ti,Yi⩽100,1⩽Zi⩽1000).
Выведите в первой строке число T — время, за которое будут надуты все шарики. Во второй строке выведите N чисел — количество шариков, надутых каждым из приглашенных помощников. Разделяйте числа пробелами. Если распределений шариков несколько, выведите любое из них.
2 2
1 1 1
1 1 1
1
1 1
3 2
2 2 5
1 1 10
4
2 1
IDE
N: Дремучий лес (задача на тернарный поиск максимума/минимума унимодальной функции)
Чтобы помешать появлению СЭС в лагере, администрация ЛКШ перекопала единственную дорогу, соединяющую «Берендеевы поляны» с Судиславлем, теперь проехать по ней невозможно. Однако, трудности не остановили инспекцию, хотя для СЭС остается только одна возможность — дойти до лагеря пешком. Как известно, Судиславль находится в поле, а «Берендеевы поляны» — в лесу.
Судиславль находится в точке с координатами (0,1).
«Берендеевы поляны» находятся в точке с координатами (1,0).
Граница между лесом и полем — горизонтальная прямая y=a, где a — некоторое число (0⩽a⩽1).
Скорость передвижения СЭС по полю составляет Vp, скорость передвижения по лесу — Vf. Вдоль границы можно двигаться как по лесу, так и по полю.
Администрация ЛКШ хочет узнать, сколько времени у нее осталось для подготовки к визиту СЭС. Она попросила вас выяснить, в какой точке инспекция СЭС должна войти в лес, чтобы дойти до «Берендеевых полян» как можно быстрее.
В первой строке входного файла содержатся два положительных целых числа Vp и Vf(1⩽Vp,Vf⩽105). Во второй строке содержится единственное вещественное число — координата по оси Oy границы между лесом и полем a(0⩽a⩽1).
В единственной строке выходного файла выведите вещественное число с точностью не менее 8 знаков после запятой — координата по оси Ox точки, в которой инспекция СЭС должна войти в лес.