Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
Злобный учитель в MШП любит мучить детей сложными задачками. А если дети эти задачки не решают, учитель подвергает их самым жестоким наказаниям. На этот раз он придумал такую задачу:
Рейтинг всех учеников МШП записан в массив A
Запросы учителя таковы:
Помогите бедным ученикам МШП избежать зверского наказания за нерешение задачи на этот раз.
В первой строке входного файла записано число N (1 ≤ N ≤ 500000) – количество учеников в МШП. Во второй строке записано N чисел – их рейтинги, числа по модулю не превосходящие 1000 (по количеству задач, которые ученик решил или не решил за время обучения). В третьей строке записано число M (1 ≤ M ≤ 50000) – количество запросов. Каждая из следующих M строк содержит описания запросов:
UPDATE i x – обновить i-ый элемент массива значением x (1 ≤ i ≤ N, |x| ≤ 1000)
QUERY l r – найти длину максимальной последовательности из нулей на отрезке с l по r. (1 ≤ l ≤ r ≤ N)
В выходной файл выведите ответы на запросы QUERY в том же порядке, что и во входном файле
5 328 0 0 0 0 5 QUERY 1 3 UPDATE 2 832 QUERY 3 3 QUERY 2 3 UPDATE 2 0
2 1 1
На экране расположены прямоугольные окна, каким-то образом перекрывающиеся (со сторонами, параллельными осям координат). Вам необходимо найти точку, которая покрыта наибольшим числом из них.
В первой строке входного файла записано число окон n (1 ≤ n ≤ 50 000). Следующие n строк содержат координаты окон x(1, i) y(1, i) x(2, i) y(2, i), где (x(1, i), y(1, i)) — координаты левого верхнего угла i-го окна, а (x(2, i), y(2, i)) — правого нижнего (на экране компьютера y растет сверху вниз, а x — слева направо). Все координаты — целые числа, по модулю не превосходящие 106.
В первой строке выходного файла выведите максимальное число окон, покрывающих какую-либо из точек в данной конфигурации. Во второй строке выведите два целых числа, разделенных пробелом — координаты точки, покрытой максимальным числом окон. Окна считаются замкнутыми, т. е. покрывающими свои граничные точки.
2 0 0 3 3 1 1 4 4
2 1 3
1 0 0 1 1
1 0 1
4 0 0 1 1 0 1 1 2 1 0 2 1 1 1 2 2
4 1 1
5 0 0 1 1 0 1 1 2 0 0 2 2 1 0 2 1 1 1 2 2
5 1 1
Каждый день к Грегори Хаусу приходит много больных, и у каждого измеряется уровень гемоглобина в крови. Данные по всем пациентам заносятся в базу данных.
Но волчанка попадается один раз на миллион, а работать с остальными неинтересно. Чтобы Хаус не выгонял больных, Кадди иногда запрашивает статистику по k последним больным: ей хочется знать сумму их уровня гемоглобина.
Также Хаус — мизантроп: он смотрит уровень гемоглобина больного, который поступил к нему позже всех, и, видя, что это точно не волчанка, выписывает его из больницы и удаляет информацию о нем из базы.
Автоматизацию процесса Хаус поручил Чейзу. Но Чейз почему-то не справился с этой задачей и попросил вас ему помочь.
Первой строкой входного файла задано число n ( 1 ≤ n ≤ 100000 ) — число обращений к базе данных. Запросы к базе выглядят следующим образом: + x ( 1 ≤ x ≤ 10 9 ) — добавить пациента с уровнем гемоглобина x в базу, - — удалить последнего пациента из базы, ? k ( 1 ≤ k ≤ 100000 ) — вывести суммарный гемоглобин последних k пациентов. Гарантируется, что k не превосходит число элементов в базе. Также гарантируется, что запросов на удаление к пустой базе не поступает. Перед началом работы база данных пуста.
Для каждого запроса " - " вывести уровень гемоглобина в крови пациента, а для каждого запроса " ? k " — суммарный гемоглобин у последних k поступивших пациентов. Ответы выводите в порядке поступления запросов.
7 +1 +2 +3 ?2 - - ?1
5 3 2 1
Недавно админ Вася настраивал компьютеры, в отделе Инопланетных объектов, увидел на столе спутниковый снимок с одной из недавно разведанных планет. На снимке было изображено необычное поле, разбитое на правильные шестиугольники, причем кто-то из ученых уже занумеровал все шестиугольники определенным образом.
На некоторых позициях, находились странные сооружения - шестиугольные башни, испускающие лучи в направлениях 6 соседних клеток. В этот момент, к столу подошел один из работников отдела. Очевидно, заметив любопытство Васи, он решил рассказать ему о находке. Оказывается, что эти самые лучи при пересечении излучают энергию, и чем больше лучей пересекается в одной точке, тем больше энергии излучается. При этом лучи идут по прямой очень далеко(возможно даже уходят в бесконечность), но не могут проходить через препятствия, например другие сооружения.
Теперь ученые пытаются на основе этого открытия построить новый источник дешевой энергии, но для этого им нужно уметь находить для интересующей их точки, сколько лучей через нее проходят, и какие эмиттеры (странные шестиугольные сооружения) их излучают.
В первой строке указаны 3 числа n , r , c (1 ≤ n ≤ 10 5 , 0 ≤ r , c ≤ 10 9 ) - количество эмиттеров, и координаты интересующей ученых позиции. В следующих n строках указано по паре чисел r i , c i (0 ≤ r i , c i ≤ 10 9 ) , координаты i-ого эмиттера. Гарантируется, что никакие два эмиттера не находятся в одной точке, и никакой эмиттер не находится в интересующей ученых точке.
В первой строчке выходного файла выведите единственное число k — количество лучей проходящих через интересную точку.
В следующей строчке выведите k чисел, номера эмиттеров, излучающих эти лучи, в произвольном порядке(все эмиттеры занумерованы с 1)
4 2 2 0 0 0 3 2 1 3 3
2 3 2
На второй день на новой работе админ Вася решил разобраться в устройстве сети здания Ассамблеи. Сначала, он доблестно начал высматривать куда какие провода ведут, какие компьютеры связаны напрямую, какие через другие компьютеры. Потратив добрую половину дня на это бесспорно важное занятие, Вася с ужасом осознал, что окончательно запутался.
Мысленно проклиная всех предыдущих админов, которые работали в здании со времени его создания, Вася решил, что пора переделать все заново. Через полчаса план новой сети был полностью готов, и наш старательный админ гордо смотрел на свое творение. На плане все компьютеры в здании были соединены в одну общую сеть, так что теперь сообщения от каждого компьютера могли доходить до любого другого. Чтобы не тратить лишние провода Вася решил, что между любыми двумя компьютерами должен быть только один путь, т.е. последовательность компьютеров, через которые придется пройти пакету, посланному с одного компьютера, чтобы достичь другого. Другими словами, Вася хочет чтобы в его сети не было ни единого цикла.
Как известно любому уважающему себя админу, чтобы пакеты не бродили по сети вечно, для каждого пакета нужно установить определенное время жизни, т.е. количество компьютеров с которых его будут пересылать дальше. И теперь, глядя на свое творение, Вася задумался, а какое минимальное время жизни ему нужно указать для пакетов, чтобы любые два компьютера могли обмениваться друг с другом информацией.
В первой строке записано едиственное число N (1 ≤ N ≤ 100000) , кол-во компютеров в сети. В слеудующих N - 1 строках записано по паре чисел a i , b i (1 ≤ a i , b i ≤ N ) , означающие, что i -ый и j -ый компьютеры соединены проводом.
Вывести единственное число, минимальное необходимое время жизни пакета
4 1 2 2 3 3 4
3
4 2 1 3 1 4 1
2