Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб |
Дан массив из N элементов, нужно научиться находить сумму чисел на отрезке.
Первая строка содержит два целых числа N и K — число чисел в массиве и количество запросов. (1 ≤ N ≤ 100 000), (0 ≤ K ≤ 100 000). Следующие K строк содержат запросы
A i x
— присвоить i-му элементу массива значение x (1 ≤ i ≤ n, 0 ≤ x ≤ 109)Q l r
— найти сумму чисел в массиве на позициях от l до r. (1 ≤ l ≤ r ≤ n)
На каждый запрос вида Q l r
нужно вывести единственное число — сумму на отрезке.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | И. Туфанов | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Дано дерево из N вешрин, все некоторым образом пронумерованы, а корень имеет номер 1. Найдите LCA для некоторых пар вершин.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Входной файл: | sum.in | Ограничение времени: | 2 сек | |
Выходной файл: | sum.out | Ограничение памяти: | 256 Мб |
Первая строка входного файла содержит два целых числа N и K — число чисел в массиве и количество запросов. (1 ≤ N ≤ 100 000), (0 ≤ K ≤ 100 000). Следующие K строк содержат запросы:
A l r x— присвоить элементам массива с позициями от l до r значение x (1 ≤ l ≤ r ≤ N, 0 ≤ x ≤ 109)
Q l r— найти сумму чисел в массиве на позициях от l до r. (1 ≤ l ≤ r ≤ N)
Изначально массив заполнен нулями.
На каждый запрос вида
Q l rнужно вывести единственное число — сумму на отрезке.
№ | Входной файл (sum.in ) |
Выходной файл (sum.out ) |
---|---|---|
1 |
|
|
Входной файл: | rmq.in | Ограничение времени: | 2 сек | |
Выходной файл: | rmq.out | Ограничение памяти: | 256 Мб |
Первая строка содержит два целых числа n и q (1 ≤ n, q ≤ 105) — длина массива и число запросов соответственно.
Вторая строка содержит n целых чисел a1, …, an (|ai| ≤ 105), задающих соответствующие значения массива.
Следующие q строк содержат запросы.
В зависимости от типа запрос может иметь вид либо ``textttmax l r'', либо ``textttadd l r v''.
1 ≤ l ≤ r ≤ n, |v| ≤ 105.
Для каждого запроса вида ``textttmax l r'' требуется в отдельной строке выдать значение соответствующего максимума.
№ | Входной файл (rmq.in ) |
Выходной файл (rmq.out ) |
---|---|---|
1 |
|
|
Входной файл: | rvq.in | Ограничение времени: | 2 сек | |
Выходной файл: | rvq.out | Ограничение памяти: | 256 Мб |
В начальный момент времени последовательность an задана следующей формулой: an = n2 mod 12345 + n3 mod 23456.
Требуется много раз отвечать на запросы следующего вида:
Первая строка входного файла содержит натуральное число k — количество запросов (1 ≤ k ≤ 100 000).
Следующие k строк содержат запросы, по одному на строке. Запрос номер i описывается двумя целыми числами xi, yi.
Если xi > 0, то требуется найти разность между максимальным и минимальным значениями среди элементов axi, …, ayi. При этом 1 ≤ xi ≤ yi ≤ 100 000.
Если xi < 0, то требуется присвоить элементу a|xi| значение yi.
В этом случае −100 000 ≤ xi ≤ −1 и |yi| ≤ 100 000.
Для каждого запроса первого типа в выходной файл требуется вывести одну строку, содержащую разность между максимальным и минимальным значениями на соответствующем отрезке.
№ | Входной файл (rvq.in ) |
Выходной файл (rvq.out ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 2 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Компания занимается автоматизацией склада. На складе хранятся n видов товаров, пронумерованных от 1 до n, каждый вид товара хранится в своём помещении. Товар вида i хранится в помещении с номером i.
Специальный робот обслуживает запросы по получению товаров со склада. Для доступа в помещения склада робот использует специальные электронные карты. Карты у робота хранятся в специальном отсеке, из которого он может вынуть верхнюю карту. Вынутую карту робот может вернуть в отсек на любое место: на верхнюю позицию, между любыми двумя картами или на самую нижнюю позицию.
Чтобы открыть помещение, робот действует следующим образом. Он вынимает карты из отсека для их хранения и возвращает их обратно в отсек, пока на верхней позиции не окажется карта от помещения, которое ему необходимо открыть. После этого, вынув эту карту, робот использует её, чтобы открыть помещение, и затем также возвращает в отсек для хранения карт. Если суммарно роботу потребовалось вынуть из отсека x карт, включая ту, которой он в итоге открыл помещение, будем говорить, что для открытия помещения робот совершил x действий.
В начале рабочего дня роботу поступил заказ на выдачу m товаров: a1, a2, …, am. Робот должен выдать товары именно в этом порядке. Для этого он последовательно выполняет следующие действия: открывает помещение, в котором лежит очередной товар, берет товар, закрывает помещение и выдаёт товар клиенту. После этого робот переходит к выдаче следующего товара.
Исходно электронные карты лежат в отсеке в следующем порядке, от верхней к нижней: b1, b2, …, bn. Для каждого помещения в отсеке лежит ровно одна карта.
Время выдачи товаров со склада зависит от того, сколько раз суммарно роботу придётся вынимать верхнюю карту из отсека для их хранения, чтобы найти карту от очередного помещения. Необходимо таким образом выбрать места, куда робот должен возвращать вынутые карты, чтобы минимизировать суммарное количество действий робота для открытия помещений.
Требуется написать программу, которая по заданным целым числам n и m, последовательности выдаваемых товаров a1, a2, …, am и начальному положению карт в отсеке для хранения b1, b2, …, bn определяет, какое минимальное количество действий придется совершить роботу, чтобы открыть все помещения в необходимом порядке. Для каждой вынутой карты необходимо также указать позицию, на которую её необходимо вернуть, чтобы добиться оптимального количества действий.
Первая строка входных данных содержит два целых числа n и m — количество видов товаров и количество товаров, которые необходимо выдать со склада.
Вторая строка содержит m целых чисел a1, a2, …, am — типы товаров, которые необходимо выдать со склада, перечисленные в том порядке, в котором это необходимо сделать.
Третья строка содержит n различных целых чисел b1, b2, …, bn — порядок, в котором карты исходно находятся в отсеке для их хранения, перечисленные от верхней к нижней.
Первая строка должна содержать число k — минимальное количество действий, которое потребуется совершить роботу, чтобы выдать товары в заданном порядке.
Далее выведите k чисел. Для каждого действия робота выведите одно число: позицию, на которую ему следует вернуть вынутую карту в отсек для хранения. Если карта возвращается на самую верхнюю позицию, следует вывести 1, если после одной карты, 2, и так далее, для последней позиции следует вывести n.
Если существует несколько способов минимизировать суммарное число действий, выведите любой из них.
1 ≤ n, m ≤ 3 ⋅ 105
1 ≤ ai ≤ n
1 ≤ bi ≤ n
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
1 | 5 | 1 ≤ n, m ≤ 5⋅ 104, n = m, для всех i верно, что ai = bi | полная | |
2 | 10 | 1 ≤ n, m ≤ 5⋅ 104, n = m, для всех i верно, что ai = bn − i + 1 | полная | |
3 | 31 | 1 ≤ n, m ≤ 2000 | первая ошибка | |
4 | 14 | 1 ≤ n, m ≤ 5⋅ 104, все ai различны | 1, 2 | первая ошибка |
5 | 14 | 1 ≤ n ≤ 5⋅ 104, 1 ≤ m ≤ 105 | 1, 2, 3, 4 | первая ошибка |
6 | 26 | 1 ≤ n ≤ 3⋅ 105, 1 ≤ m ≤ 3 ⋅ 105 | 1, 2, 3, 4, 5 | первая ошибка |
Во втором примере карты в отсеке робота перемещаются следующим образом:
Действие | Перед действием | Извлеченная карта | Открытое помещение | Позиция, куда помещается карта | После действия |
---|---|---|---|---|---|
1 | 4, 3, 2, 1 | 4 | 4 | 4 | 3, 2, 1, 4 |
2 | 3, 2, 1, 4 | 3 | - | 4 | 2, 1, 4, 3 |
3 | 2, 1, 4, 3 | 2 | - | 2 | 1, 2, 4, 3 |
4 | 1, 2, 4, 3 | 1 | 1 | 4 | 2, 4, 3, 1 |
5 | 2, 4, 3, 1 | 2 | 2 | 4 | 4, 3, 1, 2 |
6 | 4, 3, 1, 2 | 4 | 4 | 1 | 4, 3, 1, 2 |
7 | 4, 3, 2, 1 | 4 | 4 | 4 | 3, 1, 2, 4 |
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|