На прошлый новый год друзья подарили Мише клетчатое поле из n строк и m столбцов, в каждой клетке которого записано некоторое целое число c i , j , где i определяет номер строки, а j — номер столбца. Строки пронумерованы сверху вниз, а столбцы — слева направо. Строки и столбцы занумерованы целыми числами, начиная с единицы.
Подарок Мише очень понравился, и он сразу же решил показать его Маше. Вместе они долго изучали поле и обсуждали его красоту, а потом Маша заявила, что хочет часть поля забрать себе. Она пока не решила, какую именно, поэтому она назвала Мише k прямоугольных областей и предложила отдать ей любую. Миша оценивает крутизну области как сумму всех чисел, находящихся внутри неё. Перед тем как принять решение, какую же область подарить Маше, Миша хочет вычислить крутизну всех предложенных вариантов.
Задача была бы практически невыполнима, если бы Миша не прочитал прилагавшуюся к клетчатому полю инструкцию. В ней было сказано, что на самом деле число c i , j равняется a i & b j , где a и b — две последовательности чисел, любезно указанных в инструкции, а операция & означает побитовое умножение или побитовое «И» (определение операции смотрите в разделе «Замечание»).
В первой строке ввода записаны числа n , m и k ( 1 ≤ n , m , k ≤ 200 000 ) — размеры клетчатого поля и количество областей, названных Машей, соответственно. Во второй строке содержатся n чисел a i ( 0 ≤ a i ≤ 1 000 000 ) — элементы первой последовательности. В третьей строке содержатся m чисел b i ( 0 ≤ b i ≤ 1 000 000 ) — элементы второй последовательности.
Следующие k строк описывают варианты, предложенные Машей, каждая из них содержит 4 числа u i , l i , d i , r i ( 1 ≤ u i ≤ d i ≤ n , 1 ≤ l i ≤ r i ≤ m ) — координаты левой верхней и правой нижней клетки соответствующей области.
Выведите k строк, i -я строка должна содержать крутизну i -й области.
Рассмотрим записи чисел x и y в двоичной системе исчисления (возможно, с ведущими нулями) x = x k ... x 1 x 0 и y = y k ... y 1 y 0 . Тогда z = x & y определяется как z = z k ... z 1 z 0 , где z i = 1 , если x i = 1 и y i = 1 , иначе z i = 0 . Иными словами, единицы в побитовом «И» чисел находятся в тех разрядах, в которых у обоих чисел находятся единицы.
3 3 3 4 0 3 1 2 1 1 1 3 3 1 1 1 3 1 2 3 2
4 0 2
1 2 2 7 1 12 1 1 1 2 1 1 1 1
5 1
В сверхсекретную военную часть под командованием полковника Зуева скоро приедет комиссия из министерства обороны. Согласно уставу, в каждой сверхсекретной военной части должна быть сверхсекретная рота, которая должна заниматься... а чем именно — не скажем, на то она и сверхсекретная. Проблема заключается в том, что в части Зуева такой роты почему-то нет.
Полковник решил разобраться с этой проблемой незамедлительно и приказал построить на плацу в одну шеренгу всех n солдат вверенной ему части. Известно, что болтливость i -го слева солдата равна q i . Зуев хочет, чтобы сверхсекретная рота состояла из k первых солдат шеренги, а их суммарная болтливость была как можно меньше (чтобы рота оставалсь сверхсекретной). Для этого он собирается не более s раз поменять местами двух соседних солдат. Заметим, что любой солдат может участовать в таком обмене позициями сколько угодно раз. Задача оказалась нетривиальной, и полковник Зуев обратился к вам за помощью. Определите, какую минимальную суммарную болтливость первых k солдат шеренги можно достичь, если провести не более s операций обмена соседних солдат.
В первой строке входных данных записаны три целых положительных числа n , k , s ( 1 ≤ k ≤ n ≤ 150 , 1 ≤ s ≤ 10 9 ) — количество построенных в шеренгу солдат, предполагаемый размер сверхсекретной роты и максимальное возможное количество операций обмена соседних солдат соответственно.
Во второй строке входных данных записано n целых чисел q i ( 1 ≤ q i ≤ 10 6 ) — значения болтливости солдат в порядке следования солдат в шеренге.
Выведите единственное целое число — минимальную возможную суммарную болтливость сверхсекретной роты.
В первом примере полковнику достаточно поменять местами второго и третьего солдата и не использовать второй обмен. Итоговое положение солдат: ( 2 , 1 , 4 ). Минимальная возможная суммарная болтливость сверхсекретной роты равна 3 .
Во втором примере полковник будет производить обмены в следующей последовательности :
Итоговое положение солдат (10, 1, 2, 5, 6).
Минимальная суммарная болтливость роты равна 18 .
3 2 2 2 4 1
3
5 4 2 10 1 6 2 5
18
5 2 3 3 1 4 2 5
3
У маленькой Даши сегодня день рождения — ей исполнилось целых 8 лет! По такому случаю каждый из n её родственников и друзей подарил ей ленточку с праздничным поздравлением, причём, как оказалось, все поздравления отличаются друг от друга. Даша собрала все ленточки вместе и решила выкинуть некоторые из них так, чтобы оставшийся набор стал стильным . Именинница считает набор стильным, если ни одно поздравление не является подстрокой другого. Напомним, что подстрокой строки s называется непрерывный отрезок букв строки s .
Помогите Даше оставить как можно больше ленточек, чтобы она могла хвастаться ими всем своим друзьям. Ленточки не разрешается поворачивать и переворачивать, то есть каждое поздравление может быть прочитано единственным способом.
Первая строка входных данных содержит целое число n ( 1 ≤ n ≤ 750 ) — количество родственников и друзей Даши.
Каждая из следующих n строк содержит ровно одно поздравление. Каждое поздравление состоит только из строчных английских букв ' a ' и ' b '.
Суммарная длина всех поздравлений не превышает 10 000 000 символов.
В первой строке выведите максимальный размер стильного набора. Во второй строке выведите номера участвующих в нём лент, считая, что они нумеруются с единицы в порядке следования во входных данных. Если стильных наборов максимального размера несколько, то выведите любой из них.
В примере можно было также оставить ленты 3 и 4.
5 abab aba aabab ababb bab
2 2 5
Уже начался сезон олимпиад по программированию, а значит пора писать командные тренировки. Серёжа ведёт тренировки у своих команд не первый год и знает, что к туру надо подготовить не только набор задач и разбор. Тренировка длится несколько часов, и команды, которые в ней участвуют, успевают за это время проголодаться. Поэтому на каждую тренировку Серёжа закупает некоторое количество пицц, чтобы после окончания тура команды подкрепились и обсудили свои успехи и неудачи.
Командам предстоит написать n тренировок в течение n последовательных дней. Во время каждой тренировки на каждую команду, пришедшую в этот день, Серёжа заказывает по пицце в своей любимой пиццерии. Серёжа уже знает, что на i -ю тренировку придёт ровно a i команд.
В пиццерии проходят две акции. В рамках первой акции можно получить скидку, если купить две пиццы в один день. Вторая акция позволяет получить купон на покупку одной пиццы в день на протяжении двух последовательных дней.
Серёжины тренировки очень популярны, поэтому ему приходится часто делать заказы в этой пиццерии. Как их самый ценный клиент, он может неограниченно пользоваться указанными скидками и купонами в любых количествах в любые дни.
Серёжа хочет заказать все пиццы, пользуясь только скидками и купонами. При этом он не хочет приобретать ни в один из дней больше пицц, чем ему нужно в этот день. Помогите Серёже определить, может ли он закупить пиццу на все тренировки, пользуясь только купонами и скидками.
В первой строке находится целое число n ( 1 ≤ n ≤ 200 000 ) — количество тренировок.
Во второй строке находится n целых чисел a 1 , a 2 , ..., a n ( 0 ≤ a i ≤ 10 000 ), разделённых пробелами, — количества команд, которые придут на каждую из тренировок.
Если Серёжа может заказать все пиццы, используя только скидки и купоны и не покупая лишние пиццы ни в один из дней, выведите « YES » (без кавычек). Иначе выведите « NO » (без кавычек).
В первом примере Серёжа может воспользоваться одним купоном для покупки пицц в первый и второй день, одним купоном для покупки пицц во второй и третий день и одной скидкой в четвёртый день для покупки двух пицц. Это единственный возможный способ заказать все пиццы для данного теста.
Во втором примере Серёжа не может воспользоваться ни купоном, ни скидкой, не заказав при этом лишнюю пиццу. Обратите внимание, что в некоторые дни на тренировку может не прийти ни одной команды, как, например, во второй день в данном тесте.
4 1 2 1 2
YES
3 1 0 1
NO
Маленький Влад обожает играть в популярную игру Bota-2 на своем компьютере. На днях разработчики сообщили о выходе её продолжения под названием Bota-3. Разумеется, Влад тут же её приобрёл, но оказалось, что компьютер Влада слишком старый для этой игры, поэтому он отправился в магазин за обновлением для него.
В магазине Влад увидел n видеокарт, i -я из которых имеет свою мощность a i , выражаемую целым положительным числом. Для того, чтобы игра точно заработала, Влад решил купить не одну, а несколько видеокарт и объединить их мощности по новейшей технологии. Для использования этой технологии одна из видеокарт выбирается в качестве ведущей, а все остальные видеокарты подключаются к ней в качестве вторичных. Для корректной работы этой конструкции необходимо, чтобы мощность каждой видеокарты была кратна мощности ведущей видеокарты. Для обеспечения совместимости мощность каждой вторичной видеокарты может быть понижена до любого меньшего целого положительного значения. При этом мощность опорной видеокарты должна оставаться оригинальной, то есть не может быть уменьшена.
У Влада очень много денег, поэтому он может купить любые видеокарты. Помогите ему выбрать такие видеокарты, чтобы после необходимого понижения их мощностей и соединения их по новой технологии суммарная итоговая мощность видеокарт была максимальной.
В первой строке находится целое число n ( 1 ≤ n ≤ 200 000 ) — количество видеокарт в магазине.
Во второй строке находится n целых чисел a 1 , a 2 , ..., a n ( 1 ≤ a i ≤ 200 000 ), обозначающих мощности видеокарт.
В единственной строке выведите целое число — максимальную возможную суммарную итоговую мощность видеокарт.
Подзадача | Баллы | Ограничения | Необходимые подзадачи |
1 | 30 | \(N \le 100\) | тесты |
2 | 40 | \(N \le 1000\) | 1 |
3 | 30 | нет дополнительных ограничений | 2 |
В первом примере выгодно купить видеокарты с мощностями 3, 15 и 9. В таком случае можно выбрать видеокарту с мощностью 3 ведущей, а все остальные видеокарты будут с ней совместимы. Суммарная мощность в таком случае будет равна 3 + 15 + 9 = 27 . Если же купить все видеокарты и выбрать видеокарту с мощностью 2 ведущей, то мощности каждой из остальных трёх видеокарт придётся понизить на 1 , чтобы они стали кратны 2 , а значит итоговая мощность будет 2 + 2 + 14 + 8 = 26 , что менее выгодно. Обратите внимание, что не разрешается понижать мощность ведущей видеокарты, то есть получить сумму мощностей 3 + 1 + 15 + 9 = 28 нельзя.
Во втором примере выгодно купить все видеокарты, а в качестве ведущей выбрать видеокарту с мощностью 2. Видеокарта с мощностью 7 с ней несовместима, поэтому её мощность придется понизить до 6. Суммарная мощность будет равна 8 + 2 + 2 + 6 = 18 .
4 3 2 15 9
27
4 8 2 2 7
18