Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 2656 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 477 478 479 480 481 482 483 >> Отображать по:
ограничение по времени на тест
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
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

Поиск решения можно проводить с помощью двухмерной модели. В этой модели ось Ох расположена на уровне пола, источник света считается точкой с целочисленными координатами ( b x , b y ) . Трубы представляют собой окружности. Центр i -й окружности имеет целочисленные координаты ( с x , c y ) , радиус r i также целый. Так как трубы сделаны из твердого материала, окружности не пересекаются. Трубы не отражают и не пропускают свет. Вы должны написать программу, которая найдет непересекающиеся интервалы на оси Ох , которые уже защищены от света благодаря имеющимся трубам.

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

Входной файл состоит из набора сразу нескольких тестов. Общее число строк в файле не превосходит 20000 . В первой строке каждого теста содержится положительное целое число N ≤ 10000 — обозначающее количество труб. Во второй строке расположены два целых числа b x и b y , разделенных пробелом. Каждая из следующих N строк содержит 3 целых числа через пробел с x , c y и r i , причем c y + r i < b y . Последний тест содержит единственную строку, содержащую N = 0 .

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

Для каждого теста выведите набор искомых интервалов по одному в строке. Интервал описывается двумя вещественными координатами. Ответ будет считаться правильным, если его относительная и абсолютная погрешности не будут превосходить \(10^{-6}\). Интервалы должны быть отсортированы в порядке возрастания координаты x . В конце каждого набора интервалов выводите пустую строчку.

Примечание

Картинки иллюстрируют тест из условия.

Примеры
Входные данные
1
300 300
300 150 90
6
300 450
70 50 30
120 20 20
270 40 10
250 85 20
220 30 30
380 100 100
0
Выходные данные
75.00 525.00

0.72 78.86
88.50 133.94
181.04 549.93

#112551
  
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Андрей Сергеевич работает воспитателем в детском саду. Недавно он придумал новую веселую игру, для участия в которой все дети разбились на n команд. В качестве призов для участников игры Андрей Сергеевич подготовил d конфет.

По итогам игры оказалось, что в команде, занявшей i -е место, ровно x i участников.

Теперь перед Андреем Сергеевичем стоит непростая задача: надо распределить конфеты. При этом должны выполняться следующие условия:

  • Все участники одной команды должны получить поровну конфет: пусть участники команды, занявшей i -е место получат по a i конфет;
  • Каждый ребенок должен получить хотя бы одну конфету: a i > 0 ;
  • Участники команды, занявшей более высокое место, должны получить больше конфет: если i < j , то a i > a j
  • Все конфеты должны быть распределены: a 1 x 1 + a 2 x 2 + ... a nx n = d
Помогите Андрею Сергеевичу раздать детям конфеты, или сообщите,что это невозможно.

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

Первая строка содержит два целых числа n и d ( 1 ≤ n ≤ 100 , 1 ≤ d ≤ 10 6 ). Вторая строка содержит n целых чисел x 1 , ..., x n ( 1 ≤ x i ≤ 100 для всех i от 1 до n ).

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

Если разделить конфеты возможно, то в первой строке выведите YES , а во второй выведите n целых чисел: a 1 , a 2 , ..., a n . Если разделить конфеты указанным способом нельзя, выведите NO .

Примеры
Входные данные
2 100
2 1
Выходные данные
YES
49 2 
Входные данные
2 6
2 1
Выходные данные
NO
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Алла очень любит палиндромы. Все потому, что её имя является палиндромом. Напомним, что строку называют палиндромом тогда, когда она одинаково читается как слева направо, так и справа налево.

Однажды в школе учитель рассказал Алле про так называемые строки Фибоначчи. Строки Фибоначчи определяются следующим образом:

  • f 0 = a
  • f 1 = b
  • f n = f n −1 f n −2 для каждого n ≥ 2 — конкатенация двух предыдущих строк Фибоначчи
Таким образом, первые пять строк Фибоначчи: « a » , « b » , « ba » , « bab » , « babba » .

Аллу сразу заинтересовал вопрос — какой максимально длинный палиндром встречается в k -й строке Фибоначчи. Помогите Алле решить эту задачу.

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

Первая строка входного файла содержит одно целое число k (0 ≤ k ≤ 80) — номер строки Фибоначчи.

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

В выходной файл выведите длину самого большого палиндрома, содержащегося в k -й строке Фибоначчи.

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

В этой задаче Вам требуется найти максимальную по длине подстроку данной строки, такую что каждый символ встречается в ней не более k раз.

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

В первой строке даны два целых числа n и k (1 ≤ n ≤ 100000, 1 ≤ k n ) , где n – количество символов в строке. Во второй строке n символов – данная строка, состоящая только из строчных латинских букв.

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

В выходной файл выведите два числа – длину искомой подстроки и номер её первого символа. Если решений несколько, выведите любое.

Примеры
Входные данные
3 1
abb
Выходные данные
2 1
Входные данные
5 2
ababa
Выходные данные
4 1

Страница: << 477 478 479 480 481 482 483 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест