Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
Бойцовский клуб дебатов - необычный клуб во всех отношениях. Каждый из \(2^{n}\) его членов заполнил специальную анкету, содержащую \(n\) вопросов с бинарным ответом (да/нет) о своих взглядах. Ответы каждого человека могут быть представлены в виде последовательности из \(n\) бит, иначе говоря в виде числа от \(0\) до \(2^{n} - 1\).
Перечислим ещё несколько инетерсных фактов о бойцовском клубе дебатов.
В первой строке вводится число \(n\) (\(2 \le n \le 18\)) - количество вопросов в анкете.
В последующих \(2^{n - 1}\) строках даны пары людей. В \(i\) строке даны целые числа \(a_i\) и \(b_i\), разделённые одним пробелом - что означает, что люди, чьи анкеты закодированы числами \(a_i\) и \(b_i\) являются парой. Гарантируется, что каждое целое число от \(0\) до \(2^{n} - 1\) встретится во вводе ровно один раз.
Выведете строку со единственным словом 'NO' , если не существует рассадки членов клуба по местам удоволетворяющей условию.
Иначе, выведете в первой строке слово 'YES'. Во второй строке выведите \(2 ^ n\) чисел, разделённые пробелами, кодирующие ответы последовательных людей вокруг стола - корректную рассадку (стол круглый, поэтому можно начинать вывод с любого человека).
Если существует несколько решений, выведите любое.
В задаче оценка по подгруппам. Подгруппы отличаются значением \(n\). Для для \(n = 2\) - \(4\) балла за подгруппу, для каждого значения \(n\) от \(3\) до \(18\) по \(6\) баллов за подгруппу.
3 0 5 4 1 3 6 7 2
YES 0 5 7 2 6 3 1 4
Дан массив чисел и натуральное число \(K\). Над ним проделывают следующую операцию: выбирают числа, стоящие на позициях, кратных \(K\) (т.е. на позициях \(0\), \(K\), \(2K\) и т.д.), находят максимальное среди них число и удаляют его из исходного массива. Если максимумов несколько, то выбирают первый из них. После удаления все числа, стоящие правее него, смещаются на одну позицию влево. Операцию повторяют, пока все числа не кончатся.
Напишите программу, которая выведет числа в порядке их удаления.
Первая строка содержит натуральные числа \(N\) и \(K\) \((2 \le K \le N \le 100000)\).
Вторая строка содержит \(N\) натуральных чисел из отрезка \([1, N]\).
Выведите \(N\) натуральных чисел, \(i\)-е из которых равно числу, удалённому на \(i\)-м шаге.
В задаче 5 подгрупп:
10 2 2 3 1 9 10 4 5 6 1 5
10 6 4 5 2 9 3 5 1 1
10 3 2 3 1 9 10 4 5 6 1 5
9 10 4 5 6 2 5 3 1 1
В полутемной комнате Милан сел за стол и начал думать о возможных последствиях ядерной катастрофы в своем городе. Поскольку Милан - мэр города, он очень хорошо знаком с такими событиями.
А именно, он знает, что в его городе живет ровно \(N\) человек и каждый житель живет в своем собственном доме. Между \(M\) парами домов есть дороги, и для каждой дороги известно, сколько времени потребуется для ее прохождения. Наконец, Милан знает, в каких \(K\) домах есть атомные укрытия и сколько людей помещается в каждое укрытие. Учитывая все это, у Милана возникает следующий вопрос: «Сколько времени нужно, чтобы эвакуировать всех жителей города?»
Помогите Милану ответить на этот вопрос.
Конечно, эвакуация означает, что каждый житель попадает в какое-то атомное убежище. Можно предположить, что жители двигаются оптимально (по кратчайшему пути) и что несколько человек могут двигаться по одной дороге одновременно, возможно в разных направлениях. Также можно считать, что между любыми двумя домами есть хотя бы один путь, проходящий по дорогам.
Первая строка содержит натуральные числа N \((1 \le N \le 100000)\), \(M\) \((1 \le M \le 300000)\) и \(K\) \((1 \le K \le 17)\), которые обозначают количество жителей, количество дорог и количество атомных укрытий. Дома пронумерованы числами от \(1\) до \(N\).
В каждой из следующих \(M\) строк даны три натуральных числа \(A\), \(B\) \((1 \le A, B \le N, A \neq B)\) и \(C\) \((1 \le C \le 10^9)\), которые обозначают, что между домами с номерами \(A\) и \(B\) есть дорога, для прохождения которой требуется \(C\) единиц времени.
В каждой из следующих \(K\) строк даны два натуральных числа \(X\) \((1 \le X \le N)\) и \(Y\) \((1 \le Y \le 10^9)\), которые обозначают, что в доме с номером \(X\) есть атомное убежище, где может быть укрыто максимум \(Y\) людей.
Общая вместимость всех укрытий больше или равна \(N\).
В единственной строке выведите минимальное время, необходимое для эвакуации всех жителей города.
В задаче 3 подгруппы:
5 5 2 1 2 1 1 3 3 2 3 4 3 4 1 4 5 1 1 10 4 2
3
7 8 3 1 2 5 2 3 3 3 4 5 1 4 1 4 5 7 5 6 2 6 7 1 4 7 4 3 3 7 3 6 2
5
Город Загреб решил построить новую парковку. Для этого было решено использовать прямоугольный участок земли, который можно представить в виде матрицы с \(N\) строками и \(M\) столбцами. Чтобы привлечь гостей и увеличить доходы, мэр решил разместить фонтаны на заранее определенных участках земли. Остальные же клетки будут преобразованы в парковочные места и дороги. Машины могут двигаться по парковке, перемещаясь в соседнее поле в одном из четырех направлений (север, юг, восток или запад). При этом парковочные места должны быть выбраны так, чтобы любая припаркованная машина могла выехать из парковки, то есть иметь возможность попасть в левую верхнюю клетку, не врезаясь в другие припаркованные машины.
Помогите мэру и определите максимально возможное количество парковочных мест для данного участка.
Первая строка содержит натуральные числа \(N\) и \(M\) \((1 \le N \le 6, 1 \le M \le 100)\) – количество строк и столбцов участка.
Следующие \(N\) строк содержат \(M\) символов, каждый из которых описывает состояние соответствующей клетки – знак «x» обозначает клетку, на которой будет построен фонтан, другие клетки помечены знаком «.» и будут преобразованы в парковку.
На единственной строке выведите максимальное количество парковочных мест.
В этой задаче 6 подгрупп.
Поле в первой строке и первом столбце является входом на парковку и не предназначено для парковки.
3 3 ... .x. ...
2
3 3 ... ..x ...
4
3 6 .x..x. ..x.x. ......
3
4 5 ....x ....x ..x.. .x..x
7
Члены комиссии соревнования ICPC не смогли придумать задачи, поэтому они решили ранжировать команды лексикографически. Таким образом, победителем станет команда, название которой лексикографически самое маленькое. Героиня этой задачи, Этна, является лидером команды, личность которой мы будем скрывать. Название её команды начинается с буквы «Z», что ставит её в довольно плохое положение. После долгих разговоров с комитетом Этна смогла добиться более справедливого способа ранжирования команд. К сожалению, команды будут продолжать сортировать лексикографически, но определение лексикографического порядка изменится. А именно, комитет случайным образом выберет перестановку букв английского алфавита и определит лексикографический порядок, используя эту перестановку. Этна сразу же достала свой ноутбук и написала программу, которая находит перестановку букв для каждой команды, согласно которой эта команда выиграет соревнование. К сожалению, программа еще не закончена. Помогите Этне и напишите более эффективную программу с той же функциональностью.
На первной строке дано натуральное число \(N\), которое обозначает количество команд, участвующих в соревновании.
В следующих \(N\) строках даны названия команд, участвующих в соревновании. Название каждой команды состоит из одного слова, которое в свою очередь состоит из строчных букв английского алфавита. Конечно, названия команд отличаются друг от друга.
Для каждой команды в исходном порядке необходимо вывести перестановку букв английского алфавита, в соответствии с которой эта команда выиграет соревнование. Если такой перестановки нет, необходимо вывести слово «nemoguce», а если таких перестановок несколько, достаточно вывести любую.
В этой задаче 3 подгруппы. Обозначим \(L\) - суммарную длину строк, \(K\) - количество различных букв.
(13 баллов) \(1 \le N \le 100, 1 \le L \le 10000, 1 \le K \le 6\)
(32 балла) \(1 \le N \le 350, 1 \le L \le 10000, 1 \le K \le 26\)
(55 баллов) \(1 \le N \le 25000, 1 \le L \le 1000000, 1 \le K \le 26\)
3 war zag wro
yxwzvutsqponmlkjihgfedcbar zyxwvutsrqponmlkjihgfedcba yxwzvutsrqponmlkjihgfedcba
3 b ab aa
zyxwvutsrqponmlkjihgfedcba nemoguce zyxwvutsrqponmlkjihgfedcab
7 bcada dbaab bbabc ababb aacdf bcdff baddb
zyxwvutsrqponmlkjihgfecbad zyxwvutsrqponmlkjihgfedcba zyxwvutsrqponmlkjihgfebdca nemoguce zyxwvutsrqponmlkjihgfecadb zyxwvutsrqponmlkjihgfecbda nemoguce