---> 1657 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 296 297 298 299 300 301 302 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Гора состоит из площадок, соединенных между собой узкими проходами. На каждой площадке лежит какое-то количество камней. У разных площадок разный рейтинг, зависящий от высоты площадки — чем выше площадка, тем больше ее рейтинг среди камней. Очевидно, что на площадках с более высоким рейтингом лежит большее количество камней.

В один солнечный день главный камень одной из площадок обратил внимание, что вокруг стало очень тесно. Но камни не могут катиться вверх, а на нижние площадки они катиться не хотят из-за плохого рейтинга. Поэтому главный камень пошел на хитрость. Он выбрал M камней и сказал каждому из них, что где-то внизу появилась замечательная площадка с самым высоким рейтингом на горе. Для полной правдоподобности он составил карту площадок, на которые можно скатиться с его площадки. Всего (включая переполненную площадку) оказалось N площадок. Поскольку главный камень ленивый, он не стал рисовать все пути между площадками, а просто нарисовал минимальное количество проходов между площадками, чтобы из его площадки можно было добраться в любую, находящуюся ниже. Он показал каждому из M камней эту карту и объяснил, где находится замечательная площадка (чтобы камень запомнил путь). Причем, чтобы главные камни нижних площадок не имели к нему претензий из-за такого нашествия, некоторым камням он показал на другие площадки, чем остальным. Чтобы не создать лавину, он сказал камням катиться с небольшим интервалом между собой. Немного подумав, он решил, что можно пускать камни парами, чтобы пространство быстрее освободилось. Камни ему поверили и стали собираться в дорогу.

Камни не любят скучать, поэтому каждая пара решила посчитать, сколько времени они будут катиться вместе, и, может быть, перестроить пары, чтобы увеличить это время. На то, чтобы скатиться по проходу с одной площадки в следующую, не заходя по пути на другие площадки, камень тратит одну минуту. Но складывать числа камни не умеют, в этом им требуется ваша помощь.

Входные данные

В первой строке входного файла записаны два целых числа - N и K , где 1 ≤ N ≤25000, K = M / 2, 0 ≤ M ≤ 2000 . В следующих ( N –1) строках находятся пары чисел i и j , означающие, что из i -й площадки можно напрямую скатиться на j -ю. Площадки занумерованы числами от 1 до N , верхняя площадка, откуда катятся камни, может иметь любой номер. Записанных пар номеров площадок достаточно, чтобы определить путь из самой верхней площадки до любой другой. Дальше идут K строк, на каждой строке через пробел записана пара чисел a и b (1 ≤ a , b N ) , обозначающая пункты назначения для очередной пары камней: первый камень катится на площадку a , а второй — на площадку b .

Выходные данные

В выходной файл нужно вывести K строк, на каждой строке должно находиться по три целых числа a , b и c , записанных через пробел. Эти числа означают, что пара камней, направляющихся на площадки a и b , будет катиться вместе c минут. Тройки чисел нужно выдавать в том же порядке, в котором перечислены соответствующие им пары во входном файле.

Примеры
Входные данные
6 2
1 2
1 3
1 4
3 5
3 6
2 4
5 6
Выходные данные
2 4 0
5 6 1
ограничение по времени на тест
3.0 second;
ограничение по памяти на тест
128 megabytes

Гора состоит из площадок, соединенных между собой узкими проходами. На каждой площадке лежит какое-то количество камней. У разных площадок разный рейтинг, зависящий от высоты площадки — чем выше площадка, тем больше ее рейтинг среди камней. Очевидно, что на площадках с более высоким рейтингом лежит большее количество камней.

В один солнечный день главный камень одной из площадок обратил внимание, что вокруг стало очень тесно. Но камни не могут катиться вверх, а на нижние площадки они катиться не хотят из-за плохого рейтинга. Поэтому главный камень пошел на хитрость. Он выбрал M камней и сказал каждому из них, что где-то внизу появилась замечательная площадка с самым высоким рейтингом на горе. Для полной правдоподобности он составил карту площадок, на которые можно скатиться с его площадки. Всего (включая переполненную площадку) оказалось N площадок. Поскольку главный камень ленивый, он не стал рисовать все пути между площадками, а просто нарисовал минимальное количество проходов между площадками, чтобы из его площадки можно было добраться в любую, находящуюся ниже. Он показал каждому из M камней эту карту и объяснил, где находится замечательная площадка (чтобы камень запомнил путь). Причем, чтобы главные камни нижних площадок не имели к нему претензий из-за такого нашествия, некоторым камням он показал на другие площадки, чем остальным. Чтобы не создать лавину, он сказал камням катиться с небольшим интервалом между собой. Немного подумав, он решил, что можно пускать камни парами, чтобы пространство быстрее освободилось. Камни ему поверили и стали собираться в дорогу.

Камни не любят скучать, поэтому каждая пара решила посчитать, сколько времени они будут катиться вместе, и, может быть, перестроить пары, чтобы увеличить это время. На то, чтобы скатиться по проходу с одной площадки в следующую, не заходя по пути на другие площадки, камень тратит одну минуту. Но складывать числа камни не умеют, в этом им требуется ваша помощь.

Входные данные

В первой строке входного файла записаны два целых числа — N и K , где 1 ≤ N ≤ 500000 , K = M / 2 , 0 ≤ M ≤ 1000000 . В следующих ( N –1) строках находятся пары чисел i и j , означающие, что из i -й площадки можно напрямую скатиться на j -ю. Площадки занумерованы числами от 1 до N , верхняя площадка, откуда катятся камни, может иметь любой номер. Записанных пар номеров площадок достаточно, чтобы определить путь из самой верхней площадки до любой другой. Дальше идут K строк, на каждой строке через пробел записана пара чисел a и b (1 ≤ a , b N ) , обозначающая пункты назначения для очередной пары камней: первый камень катится на площадку a , а второй — на площадку b .

Выходные данные

В выходной файл нужно вывести K строк, на каждой строке должно находиться по три целых числа a , b и c , записанных через пробел. Эти числа означают, что пара камней, направляющихся на площадки a и b , будет катиться вместе c минут. Тройки чисел нужно выдавать в том же порядке, в котором перечислены соответствующие им пары во входном файле.

Подзадача 1

1 ≤ N ≤ 25 000, 1 ≤ M ≤ 2 000. Решение оценивается в 55 баллов.

Подзадача 2

Дополнительные ограничения отсутствуют. Решение оценивается в 45 баллов.

Примеры
Входные данные
6 2
1 2
1 3
1 4
3 5
3 6
2 4
5 6
Выходные данные
2 4 0
5 6 1
ограничение по времени на тест
4.0 second;
ограничение по памяти на тест
64 megabytes

Дано n отрезков на числовой прямой и m точек на этой же прямой. Для каждой из данных точек определите, скольким отрезкам они принадлежат. Точка x считается принадлежащей отрезку с концами a и b , если выполняется двойное неравенство min ( a , b ) ≤ x max ( a , b ) .

Входные данные

Первая строка содержит два целых числа n (1 ≤ n ≤ 10 5 ) – число отрезков и m (1 ≤ m ≤ 10 5 ) – число точек. В следующих n строках по два целых числи a i и b i – координаты концов соответствующего отрезка(например, может быть пара 5 2). В последней строке m целых чисел – координаты точек. Все числа по модулю не превосходят 10 9

Выходные данные

В выходной файл выведите m чисел – для каждой точки количество отрезков, в которых она содержится.

Примеры
Входные данные
3 2
0 5
-3 2
7 10
1 6
Выходные данные
2 0 
Входные данные
1 3
-10 10
-100 100 0
Выходные данные
0 0 1 
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Главный режиссер шоу, посвященного открытию ACM Programming Contest, хочет, чтобы участники шоу могли выстраиваться в различное число колонн ровно N способами. Причем при любом перестроении количество людей в каждой из колонн должно быть одинаковым. Требуется сообщить режиссеру, какое минимальное число М человек ему для этого понадобится. Так, при N = 3 потребуется пригласить всего М = 4 человек, которые могут выстроиться в 1, 2 и 4 колонны. Если же при некотором N для шоу потребуется более 10 9 человек, то режиссеру можно сообщить, что подходящее число людей собрать невозможно.

Входные данные

Программа запрашивает натуральное число N ≤ 1000

Выходные данные

Если для введенного N минимальное число людей М для шоу не превосходит 10 9 , то выдать это число М , в противном случае число 0.

Примеры
Входные данные
5
Выходные данные
16
Входные данные
6
Выходные данные
12
Входные данные
24
Выходные данные
360
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Рассмотрим один специальный тип двоичных деревьев поиска, который часто называют "декартовым деревом". Напомним, что двоичным деревом поиска называется двоичное дерево, в каждой вершине которого записан некоторый ключ (в этой задаче ключ представляет собой целое число), причем для каждой вершины u выполнены следующие условия: все ключи в левом поддереве u меньше чем ключ в вершине u , а все ключи в правом поддереве - больше. Будем называть двоичное дерево поиска декартовым деревом, если в каждой вершине u помимо основного ключа х u хранится также вспомогательный ключ y u , причем для этих ключей выполнено "условие кучи": если v - родитель u , то y v < y u . Будем называть множество пар ( x 1 , y 1 ), ( х 2 , y 2 ), ... ( х n , у n ) корректным , если все x i – различные числа от 1 до n , и то же условие выполнено для y i . Легко показать, что для любого корректного множества пар существует в точности одно декартово дерево, которое содержит пары из заданного множества в качестве пар ключей. Рассмотрим двоичное дерево T с n вершинами. Ваша задача - найти количество различных корректных множеств пар, таких что их можно расставить в вершинах T . чтобы превратить его в декартово дерево. Например, для дерева, приведенного на рисунке, существует три соответствующих корректных множества пар: {(1, 2), (2, 3), (3, 1), (4, 4)}, {(1, 2), (2, 4), (3, 1), (4, 3)} и {(1, 3), (2, 4), (3, 1), (4, 2)}.

Входные данные

Первая строка входного файла содержит n – количество вершин в дереве T (1 ≤ n ≤ 200) следующие n строк описывают его вершины. Каждая вершина описывается двумя числами: номерами левого и правого ребёнка. Если один из детей отсутствует, то вместо его номера указан 0. Гарантируется, что описание дерева корректно. Корень дерева имеет номер 1.

Выходные данные

Выведите одно число – количество различных корректны множеств пар, которые можно расставить в вершинах T , чтобы получилось декартово дерево.

Примеры
Входные данные
4
2 3
0 4
0 0
0 0
Выходные данные
3

Страница: << 296 297 298 299 300 301 302 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест