Страница: << 65 66 67 68 69 70 71 Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
1024 megabytes

Фермер Джон спрятал ключи от трактора в сейфе. Коровы пытаются взломать этот сейф. Сейф защищён сложной парольной системой.

Она организована как подвешенное за вершину 0 дерево из \(n\) (\(1 \le n \le 20000\)) вершин, каждая из которых требует цифру от \(0\) до \(9\). Вершины пронумерованы от \(0\) до \(n - 1\).

Единственная информация, которой владеют коровы – что определённые последовательности длины \(5\) не появляютя на путях в этом дереве начиная с каких-то стартовых позиций при движении вверх по дереву.

По заданным \(m\) (\(0 \le m \le 50000\)) последовательностям длины \(5\), вместе с их стартовой позицией в дереве помогите коровам вычислить сколько паролей будет не подходить.

Вы должны выводить свой ответ по модулю \(1234567\).

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

Первая строка ввода содержит два разделённых пробелом целых числа, \(n\) и \(m\) (\(1 \le n \le 20000, 0 \le m \le 50000\)) - количество вершин в дереве и количество запрещённых последовательностей соответственно.

В последующих \(i\) строках находится описание дерева. Строка \(i + 1\) содержит одно целое число \(p[i]\), означающее родителя вершины \(i\) в дереве (\(0 \le p[i] \lt i\)).

В последующих \(m\) строках находится описание запрещённых последовательностей. Строка \(n + i\) содержит два целых числа \(v_i\) и \(s_i\), разделенные пробелом - стартовую вершину последовательности, и строку из \(5\) цифр, которая не встретится в шифре начиная с вершины \(v_i\) если двигаться вверх по дереву (\(0 \le v_i \lt n\)) соответственно.

Гарантируется, что корень дерева находится не менее чем в 4 шагах от \(v_i\).

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

Выведите единственное целое число – количество неподходящих конфигураций цифр по модулю \(1234567\).

Система оценки

Подзадача 1 (10 баллов): \(1 \le n \le 15, 0 \le m \le 15\)

Подзадача 2 (15 баллов): \(1 \le n \le 1000, 0 \le m \le 2000\)

Подзадача 3 (20 баллов): \(1 \le n \le 1000, 0 \le m \le 50000\)

Подзадача 4 (55 баллов): \(1 \le n \le 20000, 0 \le m \le 50000\)

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

Мислав и Мирко разработали новую игру под названием повороты.

Сначала Мирко выбирает последовательность чисел длины \(n\) и число \(k\) и разбивает последовательность на секции, каждая из которых содержит \(k\) чисел (\(n\) делится на \(k\)). Первая секция содержит первые \(k\) позиций в последовательности, вторая секция содержит последующие \(k\) позиций в последовательности и так далее.

После этого Мирко начинает применять различные операции на данной последовательности. Есть два типа операций:

1. Совершить циклический сдвиг элементов последовательности чисел в каждой секции на \(x\) влево или вправо.

2. Совершить циклический сдвиг элементов последовательности чисел целиком на \(x\) влево или вправо.

Заметим, что операция типа 2 может изменить то, к какой секции принадлежит какое число.

После применения всех операций, Мирко сообщает Миславу получившуюся последовательность и применённые операции. Задача Мислава заключается в том, чтобы восстановить исходную последовательность. Он попросил вас о помощи.

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

Первая строка ввода содержит три целых числа \(n\), \(k\), \(q\) (\(1 \le n \le 100000; 1 \le k \le 100000; 1 \le q \le 100000\)) - длину последовательности, длину каждой секции и количество применённых операций соответственно.

Последующие \(q\) строк содержат описание выполненных операций. Каждая из последующих \(q\) строк содержит два целых числа \(a\) (\(1 \le a \le 2\)) - тип операции, и \(x\) (\(-100000 \le x \le 100000\)) - число позиций, на которое был произведен циклический сдвиг. Если число \(x\) отрицательно, надо производить циклический сдвиг на \(|x|\) элементов влево, иначе - на \(|x|\) элементов вправо.

Последняя строка содержит \(n\) целых чисел, \(i\)-е из которых - это число, которое будет стоять на \(i\)-й позиции после выполнения операций из условия.

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

В единственной строке выведите \(n\) чисел - исходную последовательность.

Система оценки

Подзадача 1 (15 баллов): (\(n \le 100\))

Подзадача 2 (20 баллов): (\(k \le 100\))

Подзадача 3 (65 баллов): без дополнительных ограничений

Примеры
Входные данные
4 2 2
2 2
1 1
3 2 1 0
Выходные данные
0 1 2 3 
Входные данные
8 4 4
1 3
1 15
1 -5
2 -1
6 10 14 19 2 16 17 1
Выходные данные
6 10 14 1 2 16 17 19 
Входные данные
9 3 5
1 1
2 -8
2 9
1 1
2 -4
3 1 8 7 4 5 2 6 9
Выходные данные
5 3 6 9 7 1 8 2 4 
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Недавно в Байтландии изобрели Битовый Поляризационный Магнит. Если его применить, каждая дорога в Байтландии станет односторонней. Это будет очень плохо, ведь в Байтландии дороги образуют дерево — от каждого города до каждого ровно один путь. В зависимости от того, в какую сторону окажется ориентирована каждая дорога, различные города станут недостижимы друг из друга. Теперь ученые решили выяснить, насколько плохо будет жить в Байтландии, если применить БПМ. Определите минимальное и максимальное количество пар городов, что из первого по прежнему можно будет добраться до другого после применения магнита.

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

Первая строка содержит число \(n\) — число городов в Байтландии (\(1 \le n \le 250000\)). Следующая \(n - 1\) строка описывают дороги, каждая дорога описывается двумя различными числами от \(1\) до \(n\) — номерами городов, которые он соединяет. От каждого города можно добраться до любого другого.

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

Выведите два числа: минимальное и максимальное число искомых пар городов.

Система оценки

Подзадача 1 (10 баллов): \(1 \le n \le 15\)

Подзадача 2 (15 баллов): \(1 \le n \le 100\)

Подзадача 3 (15 баллов): \(1 \le n \le 3000\)

Подзадача 4 (10 баллов): \(1 \le n \le 10000\)

Подзадача 5 (35 баллов): \(1 \le n \le 60000\)

Подзадача 6 (15 баллов): Без дополнительных ограничений

Примеры
Входные данные
4
1 2
1 3
1 4
Выходные данные
3 5
Входные данные
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
Выходные данные
7 28
ограничение по времени на тест
1.5 second;
ограничение по памяти на тест
256 megabytes

Поздравляем! Вас наняли управляющим одного крупного завода по производству чего-то очень важного. На вашем заводе есть \(n\) рабочих и \(n\) станков. Каждый рабочий умеет работать на каких-то станках, а на каких-то не умеет. К счастью, вы можете отправить какого-то рабочего на курсы повышения квалификации, чтобы он научился работать на каком-то станке, заплатив за это 1 тугрик. Нет никаких ограничений по тому, кого и сколько раз отправлять на курсы. У ваших работников также очень хорошая память, поэтому если они умели или научились работать на каком-то станке, то уже никогда не забудут, как это делать.

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

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

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

В первой строке задано число \(1 \le n \le 25\) - кол-во рабочих и кол-во станков. Каждая из следующих строк содержит информацию об умениях рабочих. \(i+1\)-я строка ввода содержит строку \(s_i\), где \(s_{i,j} = 1\), если \(i\) рабочий умеет работать за \(j\)-м станком и 0 в обратном случае.

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

Выведите одно число - минимальное кол-во денег, которое вы можете потратить.

Система оценки

Подзадача 1(15 баллов) \(1 \le n \le 3\)

Подзадача 2(45 баллов) \(1 \le n \le 10\)

Подзадача 3(40 баллов) нет дополнительных ограничений

Примеры
Входные данные
2
11
10
Выходные данные
1
Входные данные
2
10
00
Выходные данные
1
Входные данные
3
000
110
000
Выходные данные
3
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Будем считать, что карта Адриатического моря представляет собой сетку, состоящую из единичных квадратиков, организованных в \(2500\) рядов и \(2500\) столбцов. Ряды пронумерованы от \(1\) до \(2500\) с севера на юг, столбцы пронумерованы от \(1\) до \(2500\) с запада на восток. В море есть N островов, пронумерованных от 1 до N и каждый остров находится внутри некоторого единичного квадрата сетки. Позиция острова K задана его координатами — рядом \(R_k\) и столбцом \(C_k\). Никакие два острова не находятся в одном квадрате.

Из за ветра и морских течений, за один шаг переплыть с одного острова на другой можно только, если они расположены в северо-западном или юго-восточном направлении друг относительно друга.

Точнее, можно переплыть с острова \(A\) на остров \(B\) за один шах, если или \(R_A \lt R_B\) и \(C_A \lt C_B\), или \(R_A \gt R_B\) и \(C_A \gt C_B\). При этом расстояние между островами или наличие островов по дороге не влияет на возможность доплыть с одного острова на другой. Если нельзя доплыть с одного острова на другой напрямую, иногда можно доплыть с использованием промежуточных островов более чем за один шаг. Определим как расстояние между островами величину, равную числу шагов, необходимых, чтобы переплыть с одного острова на другой.

Рассмотрим остров K. Для каждого острова определим, какое минимальное число шагов можно переплыть с него на K. Просуммируем эти числа и получим некоторую величину, характеризующую удаленность K от остальных островов. Требуется найти это число для всех островов. Гарантируется, что в тестах острова расположены так, что с каждого острова можно попасть на каждый.

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

Первая строка входного файла содержит целое число \(n\) (\(3 \le n \le 250000\)) – число островов.

Следующие \(n\) строк сожержат положения островов. Каждое положение задаётся двумя целыми числами \(r_i\) и \(c_i\) между 1 и 2500 (включительно) - ряд и столбец, сооответственно.

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

Выходной файл должен содержать \(n\) строк. Для каждого острова, в порядке вхождения во входно файле, выведите на отдельной строке сумму расстояний дл него со всех остальных островов.

Система оценки

Подзадача 1 (25 баллов): \(1 \le n \le 100\)

Подзадача 2 (25 баллов): \(1 \le n \le 1500\)

Подзадача 3 (10 баллов): \(1 \le n \le 5000\)

Подзадача 4 (20 баллов): \(1 \le n \le 25000\)

Подзадача 5 (20 баллов): Без дополнительных ограничений

Примечание

Пояснение к первому примеру:

На рисунке можно, начав с острова в ряду 2, столбце 3, можно доплыть за один шаг до 4 других островов, а до оставшихся двух островов - за 2 шага.

Примеры
Входные данные
7
1 7
7 5
4 5
4 8
6 6
6 1
2 3
Выходные данные
16
11
12
11
12
16
8
Входные данные
4
1 1
2 3
3 2
4 4
Выходные данные
3
4
4
3

Страница: << 65 66 67 68 69 70 71 Отображать по:
Выбрано
:
Отменить
|
Добавить в контест