You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В этой задаче вам нужно реализовать любую из пройденных сортировок, работающих за время $O(n \log n)$. Использовать встроенные в язык сортировки и структуры данных запрещается.
Дан массив целых чисел. Ваша задача — отсортировать его в порядке неубывания.
Входные данные
В первой строке содержится число $n$$(1 ⩽ n ⩽ 100\ 000)$ — количество элементов в массиве. Во второй строке находятся $n$ целых чисел, по модулю не превосходящих $10^9$.
А в этой задаче вам нужно реализовать сортировку подсчетом. Использовать другие сортировки запрещается.
Дан массив из $n$ элементов, которые принимают целые значения от 0 до 100. Отсортируйте этот массив в порядке неубывания элементов.
Входные данные
В первой строке содержится число $n$$(1 ⩽ n ⩽ 200\ 000)$ — количество элементов в массиве. Во второй строке находятся n целых чисел, от 0 до 100 каждое.
Напишите программу, которая для заданного массива $A = ⟨a_1, a_2, …, a_n⟩$ находит количество пар $(i, j)$ таких, что $i < j$ и $a_i > a_j$.
Входные данные
Первая строка входного файла содержит натуральное число $n$$(1 ⩽ n ⩽ 500\ 000)$ — количество элементов массива. Вторая строка содержит $n$ попарно различных элементов массива $A$$(0 ⩽ a_i ⩽ 10^6)$.
Выходные данные
В выходной файл выведите одно число — ответ на задачу.
В этой задаче вам необходимо организовать структуру данных Heap для хранения целых чисел, над которой определены следующие операции:
Insert(X) — добавить в Heap число $X$;
Extract — достать из Heap наибольшее число (удалив его при этом).
Эту задачу нужно решить без использования встроенных структур данных для поиска максимального числа.
Входные данные
Во входном файле записано количество команд $n$$(1 ⩽ n ⩽ 100\ 000)$, потом последовательность из $n$ команд, каждая в своей строке.
Каждая команда имеет такой формат: 0 <число> или 1, что означает соответственно операции Insert(<число>) и Extract. Добавляемые числа находятся в интервале от $1$ до $10^7$ включительно.
Гарантируется, что при выполнении команды Extract в структуре находится по крайней мере один элемент.
Выходные данные
В выходной файл для каждой команды извлечения необходимо вывести число, полученное при выполнении команды Extract.
Даны два массива. Первый массив отсортирован по неубыванию, второй массив содержит запросы — целые числа.
Для каждого запроса выведите число из первого массива наиболее близкое (то есть с минимальным модулем разности) к числу в этом запросе. Если таких несколько, выведите меньшее из них.
Входные данные
В первой строке входных данных содержатся числа $n$ и $k$$(0 < n, k ⩽ 10^5)$. Во второй строке задаются $n$ чисел первого массива, отсортированного по неубыванию, а в третьей строке — $k$ чисел второго массива. Каждое число в обоих массивах по модулю не превосходит $2 \cdot 10^9$.
Выходные данные
Для каждого из $k$ чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному. Если таких несколько, выведите меньшее из них.
Сегодня утром жюри решило добавить в вариант олимпиады еще одну, Очень Легкую Задачу. Ответственный секретарь Оргкомитета напечатал ее условие в одном экземпляре, и теперь ему нужно до начала олимпиады успеть сделать еще $n$ копий. В его распоряжении имеются два ксерокса, один из которых копирует лист за $x$ секунд, а другой — за $y$. (Разрешается использовать как один ксерокс, так и оба одновременно. Можно копировать не только с оригинала, но и с копии.) Помогите ему выяснить, какое минимальное время для этого потребуется.
Входные данные
На вход программы поступают три натуральных числа $n$, $x$ и $y$, разделенные пробелом $(1 ⩽ n ⩽ 2 \cdot 10^8, 1 ⩽ x, y ⩽ 10)$.
Выходные данные
Выведите одно число — минимальное время в секундах, необходимое для получения $n$ копий.
Маленький мальчик Ферма́ живет в деревне. Наступают холодные времена, поэтому бабушка попросила мальчика сходить в лес, чтобы собрать дров. В лесу около деревни, в которой живет Ферма, находится волшебная Поляна Дров, на которой всегда лежат дрова, и никогда не кончаются. Естественно, Ферма должен пойти именно туда.
Единственная проблема заключается в том, что идти до Поляны не очень близко, тем более что скорость передвижения по лесу намного меньше, чем скорость передвижения по полю, в котором находится деревня.
Деревня находится в точке с координатами $(0, 1)$.
Поляна находится в точке с координатами $(1, 0)$.
Граница между лесом и полем — горизонтальная прямая $y = a$, где $a$ — некоторое число $(0 ⩽ a ⩽ 1)$.
Скорость передвижения по полю составляет $V_p$, скорость передвижения по лесу — $V_f$. Вдоль границы можно двигаться как по лесу, так и по полю.
Найдите точку, в которой мальчик Ферма должен войти в лес, чтобы дойти до Поляны Дров как можно быстрее.
Входные данные
В первой строке входного файла содержатся два положительных целых числа — $V_p$ и $V_f$$(1 ⩽ V_p, V_f ⩽ 10^5)$. Во второй строке содержится единственное вещественное число — координата по оси $O_y$ границы между лесом и полем $a$$(0 ⩽ a ⩽ 1)$
Выходные данные
В единственной строке выходного файла выведите вещественное число с точностью не менее 4 знаков после запятой — координата по оси $O_x$ точки, в которой мальчик Ферма должен войти в лес.
У Демьяны есть $n$ драгоценностей. Каждая из драгоценностей имеет ценность $v_i$ и вес $w_i$. С тех пор, как её мужа Джонни уволили в связи с последним финансовым кризисом, Демьяна решила продать несколько драгоценностей. Для себя она решила оставить лишь $k$ лучших. Лучших в смысле максимизации достаточно специфического выражения: пусть она оставила для себя драгоценности номер $i_1, i_2, …, i_k$, тогда максимальной должна быть величина
На первой строке $n$ и $k$$(1 ⩽ k ⩽ n ⩽ 100\ 000)$.
Следующие $n$ строк содержат пары целых чисел $v_i$, $w_i$$(0 ⩽ v_i ⩽ 10^6,$$1 ⩽ w_i ⩽ 10^6)$, сумма всех $v_i$ не превосходит $10^7$, сумма всех $w_i$ также не превосходит $10^7)$.
Выходные данные
Выведите $k$ различных чисел от $1$ до $n$ — номера драгоценностей. Драгоценности нумеруются в том порядке, в котором перечислены во входных данных. Если есть несколько оптимальных ответов, выведите любой.
Петя составил таблицу умножения размера $n \times n$. Ячейка в $i$-й строке и $j$-м столбце содержит значение $i \cdot j$. Петю заинтересовал вопрос: какое число в таблице является $k$-м по возрастанию? Помогите Пете ответить на этот вопрос.
Входные данные
Ввод содержит два целых числа $n$ и $k$$(1 ⩽ n ⩽ 10^5, 1 ⩽ k ⩽ n^2)$.
Выходные данные
Выведите одно число — $k$-е число по возрастанию в таблице.
Есть два массива $a$ и $b$, каждый из которых состоит из $n$ чисел. Для каждой пары чисел $(i, j): 1 ⩽ i, j ⩽ n$ выпишем сумму чисел $a_i + b_j$. Найдите в полученном множестве сумм $k$-ю по возрастанию.
Входные данные
Первая строка содержит целые числа $n$ и $k$$(1 ⩽ n ⩽ 10^5, 1 ⩽ k ⩽ n^2)$. Вторая строка содержит элементы массива $a$, третья строка содержит элементы массива $b$. Все элементы массивов — целые положительные числа, не больше $10^9$.