Skip to content

Latest commit

 

History

History
120 lines (85 loc) · 6.59 KB

README.md

File metadata and controls

120 lines (85 loc) · 6.59 KB

park-mail-ru-algorithms-M1

1.4. Инвертирование бита

Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt

Инвертируйте значение бита в числе N по его номеру K.

Необходимо использование битовых операций. Использование арифметических операций запрещено. Формат ввода

Сначала вводится число N. Оно лежит в диапазоне 0..232-1 и вводится в десятичном виде.

Далее вводится номер бита K. Лежит в диапазоне 0..31 и вводится в десятичном виде. Формат вывода

Выходное число выводится в десятичном виде.

2.2. Унимодальная последовательность

Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt

Дан массив целых чисел А[0..n-1]. Известно, что на интервале [0, m] значения массива строго возрастают, а на интервале [m, n-1] строго убывают. Найти m за O( log m ). 2 ≤ n ≤ 10000.

3.2. Дек с динамическим буфером

Ограничение времени 1 секунда Ограничение памяти 5Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt

Реализовать дек с динамическим зацикленным буфером.

Обрабатывать команды push * и pop *. Формат ввода

В первой строке количество команд n. n ≤ 1000000.

Каждая команда задаётся как 2 целых числа: a b.

a = 1 - push front a = 2 - pop front a = 3 - push back a = 4 - pop back

Если дана команда pop *, то число b - ожидаемое значение. Если команда pop * вызвана для пустой структуры данных, то ожидается “-1”.

4.2. Топ K пользователей из лога

Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt

Имеется лог-файл, в котором хранятся пары для N пользователей (Идентификатор пользователя, посещаемость сайта). Напишите программу, которая выбирает K пользователей, которые чаще других заходили на сайт, и выводит их в порядке возрастания посещаемости. Количество заходов и идентификаторы пользователей не повторяются.

Требования:

Время работы O(N * logK)
Куча должна быть реализована в виде шаблонного класса.
Решение должно поддерживать передачу функции сравнения снаружи.
Куча должна быть динамической.

Формат ввода

Сначала вводятся N и K, затем пары (Идентификатор пользователя, посещаемость сайта). Формат вывода

Идентификаторы пользователей в порядке возрастания посещаемости.

5.1. Реклама

Ограничение времени 0.05 секунд Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt В супермаркете решили оптимизировать показ рекламы. Известно расписание прихода и ухода покупателей (два целых числа). Каждому покупателю необходимо показать минимум 2 рекламы. Рекламу можно транслировать только в целочисленные моменты времени. Покупатель может видеть рекламу от момента прихода до момента ухода из магазина. В каждый момент времени может показываться только одна реклама. Считается, что реклама показывается мгновенно. Если реклама показывается в момент ухода или прихода, то считается, что посетитель успел её посмотреть. Требуется определить минимальное число показов рекламы.

6. Порядковая статистика и параметры множества

Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt

Дано множество целых чисел из [0..109] размера n.

Используя алгоритм поиска k-ой порядковой статистики, требуется найти следующие параметры множества:

10% перцентиль
медиана
90% перцентиль

Требования:

К дополнительной памяти: O(n).
Среднее время работы: O(n)
Должна быть отдельно выделенная функция partition.
Рекурсия запрещена.
Решение должно поддерживать передачу функции сравнения снаружи.

Формат ввода

Сначала вводится кол-во элементов массива n. После сам массив. Формат вывода

Параметры множества в порядке:

10% перцентиль
медиана
90% перцентиль