Вася загадал число от 1 до \(N\). За какое наименьшее количество вопросов (на которые Вася отвечает "да" или "нет") Петя может угадать Васино число?
Вводится одно число \(N\)
Выведите наименьшее количество вопросов, которого гарантированно хватит Пете, чтобы угадать Васино число.
| Ввод | Вывод |
|---|---|
2 |
1 |
3 |
2 |
Дано два списка чисел, числа в первом списке упорядочены по неубыванию. Для каждого числа из второго списка определите номер первого и последнего появления этого числа в первом списке.
В первой строке входных данных записано два числа \(N\) и \(M\) (\(1\le N, M\le 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 |
Реализуйте алгоритм приближенного бинарного поиска.
В первой строке входных данных содержатся числа \(N\) и \(K\) (\(0 \lt N,\,K \lt 100\,001\)). Во второй строке задаются \(N\) чисел первого массива, отсортированного по неубыванию, а в третьей строке – \(K\) чисел второго массива. Каждое число в обоих массивах по модулю не превосходит \(2\cdot10^9\).
Для каждого из \(K\) чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному. Если таких несколько, выведите меньшее из них.
| Ввод | Вывод |
|---|---|
5 5 1 3 5 7 9 2 4 8 1 6 |
1 3 7 1 5 |
Когда Петя учился в школе, он часто участвовал в олимпиадах по информатике, математике и физике. Так как он был достаточно способным мальчиком и усердно учился, то на многих из этих олимпиад он получал дипломы. К окончанию школы у него накопилось \(n\) дипломов, причём, как оказалось, все они имели одинаковые размеры: \(w\) — в ширину и \(h\) — в высоту. Сейчас Петя учится в одном из лучших российских университетов и живёт в общежитии со своими одногруппниками. Он решил украсить свою комнату, повесив на одну из стен свои дипломы за школьные олимпиады. Так как к бетонной стене прикрепить дипломы достаточно трудно, то он решил купить специальную доску из пробкового дерева, чтобы прикрепить её к стене, а к ней — дипломы. Для того чтобы эта конструкция выглядела более красиво, Петя хочет, чтобы доска была квадратной и занимала как можно меньше места на стене. Каждый диплом должен быть размещён строго в прямоугольнике размером \(w\) на \(h\). Дипломы запрещается поворачивать на 90 градусов. Прямоугольники, соответствующие различным дипломам, не должны иметь общих внутренних точек. Требуется написать программу, которая вычислит минимальный размер стороны доски, которая потребуется Пете для размещения всех своих дипломов.
Входной файл содержит три целых числа: \(w\), \(h\), \(n\) (\(1\le w,h,n\le 10^9\)).
В выходной файл необходимо вывести ответ на поставленную задачу.
| Ввод | Вывод |
|---|---|
2 3 10 |
9 |
Дано \(N\) отрезков провода длиной \(L_{1},\, L_{2},\, \ldots,\, L_{N}\) сантиметров. Требуется с помощью разрезания получить из них \(K\) равных отрезков как можно большей длины, выражающейся целым числом сантиметров. Если нельзя получить \(K\) отрезков длиной даже \(1\) см, вывести \(0\).
Ограничения: \(1 \leq N \leq 10^{4},\; 1 \leq K \leq 10^{4},\; 10^{2} \leq L_{i} \leq 10^{7}\), все числа целые.
В первой строке находятся числа \(N\) и \(K\). В следующих \(N\) строках - \(L_{1},\, L_{2},\, \ldots,\, L_{N}\), по одному числу в строке.
Вывести одно число - полученную длину отрезков.
| Ввод | Вывод |
|---|---|
4 11 802 743 457 539 |
200 |
На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное расcтояние между коровами было как можно больше.
В первой строке вводятся числа \(N\) \((2 \lt N \lt 10001)\) – количество стойл и \(K\) (\(1 \lt K \lt N )\) – количество коров. Во второй строке задаются \(N\) натуральных чисел в порядке возрастания – координаты стойл (координаты не превосходят \(10^9\))
Выведите одно число – наибольшее возможное допустимое расстояние.
| Ввод | Вывод |
|---|---|
6 3 2 5 7 11 15 20 |
9 |
Сегодня утром жюри решило добавить в вариант олимпиады еще одну, Очень Легкую Задачу. Ответственный секретарь Оргкомитета напечатал ее условие в одном экземпляре, и теперь ему нужно до начала олимпиады успеть сделать еще \(N\) копий. В его распоряжении имеются два ксерокса, один из которых копирует лист за \(х\) секунд, а другой – за \(y\). (Разрешается использовать как один ксерокс, так и оба одновременно. Можно копировать не только с оригинала, но и с копии.) Помогите ему выяснить, какое минимальное время для этого потребуется.
На вход программы поступают три натуральных числа \(N\), \(x\) и \(y\), разделенные пробелом \((1 \leq N \leq 2\cdot10^{8},\, 1 \leq x, y \leq 10)\).
Выведите одно число – минимальное время в секундах, необходимое для получения \(N\) копий.
| Ввод | Вывод |
|---|---|
4 1 1 |
3 |
5 1 2 |
4 |
Для освоения Марса требуется построить исследовательскую базу. База должна состоять из \(n\) одинаковых модулей, каждый из которых представляет собой прямоугольник.
Каждый модуль представляет собой жилой отсек, который имеет форму прямоугольника размером \(a \times b\) метров. Для повышения надежности модулей инженеры могут добавить вокруг каждого модуля слой дополнительной защиты. Толщина этого слоя должна составлять целое число метров, и все модули должны иметь одинаковую толщину дополнительной защиты. Модуль с защитой, толщина которой равна \(d\) метрам, будет иметь форму прямоугольника размером \((a + 2d) \times (b + 2d)\) метров.
Все модули должны быть расположены на заранее подготовленном прямоугольном поле размером \(w \times h\) метров. При этом они должны быть организованы в виде регулярной сетки: их стороны должны быть параллельны сторонам поля, и модули должны быть ориентированы одинаково.
Требуется написать программу, которая по заданным количеству и размеру модулей, а также размеру поля для их размещения, определяет максимальную толщину слоя дополнительной защиты, который можно добавить к каждому модулю.
Строка содержит пять разделенных пробелами целых чисел: \(n\), \(a\), \(b\), \(w\) и \(h\) (\(1 \le n, a, b, w, h \le 10^{18}\)). Гарантируется, что без дополнительной защиты все модули можно разместить в поселении описанным образом.
Ответ должен содержать одно целое число: максимальную возможную толщину дополнительной защиты. Если дополнительную защиту установить не удастся, требуется вывести число \(0\).
| Ввод | Вывод |
|---|---|
1 1 1 1 1 |
0 |
1 1 1 3 3 |
1 |
Фермер Николай нанял двух лесорубов: Дмитрия и Федора, чтобы вырубить лес, на месте которого должно быть кукурузное поле. В лесу растут \(X\) деревьев. Дмитрий срубает по A деревьев в день, но каждый \(K\)-й день он отдыхает и не срубает ни одного дерева. Таким образом, Дмитрий отдыхает в \(K\)-й, 2\(K\)-й, 3\(K\)-й день, и т.д. Федор срубает по B деревьев в день, но каждый \(M\)-й день он отдыхает и не срубает ни одного дерева. Таким образом, Федор отдыхает в \(M\)-й, 2\(M\)-й, 3\(M\)-й день, и т.д. Лесорубы работают параллельно и, таким образом, в дни, когда никто из них не отдыхает, они срубают \(A\) + \(B\) деревьев, в дни, когда отдыхает только Федор — \(A\) деревьев, а в дни, когда отдыхает только Дмитрий — \(B\) деревьев. В дни, когда оба лесоруба отдыхают, ни одно дерево не срубается. Фермер Николай хочет понять, за сколько дней лесорубы срубят все деревья, и он сможет засеять кукурузное поле. Требуется написать программу, которая по заданным целым числам \(A\), \(K\), \(B\), \(M\) и \(X\) определяет, за сколько дней все деревья в лесу будут вырублены.
Входной файл содержит пять целых чисел, разделенных пробелами: \(A\), \(K\), \(B\), \(M\) и \(X\) \((1 \leq A,\, B \leq 10^{9},\; 2 \leq K,\, M \leq 10^{18},\; 1 \leq X \leq 10^{18})\).
Выходной файл должен содержать одно целое число — искомое количество дней.
| Ввод | Вывод |
|---|---|
1 2 1 3 10 |
8 |
1 2 1 3 11 |
9 |
Дано кубическое уравнение \(ax^{3} + bx^{2} + cx + d = 0 \;(a \ne 0)\). Известно, что у этого уравнения ровно один корень. Требуется его найти.
Во входных данных через пробел записаны четыре целых числа: \(-1000 \le a,\,b,\,c,\,d \le 1000\).
Выведите единственный корень уравнения с точностью не менее 4 знаков после десятичной точки.
| Ввод | Вывод |
|---|---|
1 -3 3 -1 |
0.999999598818135 |
-1 -6 -12 -7 |
-0.999999999990564 |