Турнир Архимеда(52 задач)
Кировские командные турниры(8 задач)
Барнаульские командные турниры(10 задач)
Московская командная олимпиада(246 задач)
Командные чемпионаты школьников Санкт-Петербурга по программированию(167 задач)
ВКОШП(180 задач)
Алан любит вскрывать шифры и кодовые замки. На этот раз ему попался необычайно сложный замок, найти ключ к которому Алану не удалось, поэтому он решил перебрать все возможные комбинации, чтобы узнать ключ.
Замок представляет собой \(n\) кнопок, пронумерованных целыми числами от 1 до \(n\). Замок открывается только тогда, когда какие-то последовательные \(n\) нажатий на кнопки образуют некоторую секретную перестановку. Кнопки замка следует нажимать по очереди, нажать одновременно две или более кнопки нельзя.
Более формально: предположим, что Алан нажал на кнопки \(k\) раз. Пусть \(a_i\) (\(1 \le i \le k\)) - номер кнопки, которую Алан нажал \(i\) по счету, а \(b_1, b_2, \ldots, b_n\) - секретная перестановка. Тогда замок открывается, если существует такое число \(x\) (\(1 \le x \le k - n + 1\)), что \(b_1 = a_x\), \(b_2 = a_{x+1}\),..., \(b_n = a_{x+n-1}\).
Алан хочет придумать такую универсальную последовательность нажатий, что при нажатии кнопок в такой последовательности замок откроется для любой секретной перестановки. Также Алан хочет, чтобы эта последовательность не была слишком длинной, а именно, ее длина не превышала \(2n!\), где \(n! = 1 \cdot 2 \cdot \ldots \cdot n\). Например, для \(n = 3\) длина последовательности не должна превышать 12.
Помогите Алану найти такую последовательность.
В единственной строке входного файла находится целое число \(n\) (\(1 \le n \le 9\)) - количество кнопок на кодовом замке.
В первой строке выходного файла выведите число \(k\) (\(0 \le k \le 2n!\)) - длину универсальной последовательности. Во второй строке выведите \(k\) целых чисел \(a_i\), разделенных пробелами (\(1 \le a_i \le n\)) - порядок, в котором следует нажимать кнопки. Обратите внимание, что достаточно вывести любую последовательность длины не более \(2n!\), минимизировать длину не нужно. Гарантируется, что такая последовательность существует для любого \(n\).
2
3 1 2 1
3
9 1 2 3 1 2 1 3 2 1
В Байтландии вспыхнула эпидемия опасной болезни. Известно, что возбудителями болезни являются \(n\) различных болезнетворных бактерий.
Для правильного лечения пациента врачам необходимо знать, чем именно была вызвана его болезнь. Для этого пациент сдает \(m\) анализов: каждый анализ проверяет наличие или отсутствие некоторых видов бактерий. Анализ дает положительный результат, если в крови у человека есть хотя бы один из проверяемых этим анализом возбудителей болезни.
Помогите врачам по результатам анализов выяснить про каждую бактерию, заражен ли ею пациент.
В первой строке входного файла заданы два числа \(n\) (\(1 \le n \le 100\)) - число различных возбудителей болезни и \(m\) - число анализов. Следующие \(m\) (\(1 \le m \le 10\,000\)) строк содержат по \(n + 1\) числу. Первые \(n\) чисел описывают, какие возбудители обнаруживаются этим анализом, \(i\)-е число равно 1, если анализ проверяет наличие \(i\)-го возбудителя и 0 - в противном случае.
Последнее число в строке равно 1, если анализ дал положительный результат, и 0 - в противном случае.
Если входные данные противоречивы, выведите в выходной файл единственную строку "Incorrect". В противном случае выведите в выходной файл три строки. Каждая строка задается в формате: число бактерий, далее их номера.
В первой строке необходимо вывести номера бактерий, которые не могут являться причиной болезни, во второй - номера бактерий, про которые можно точно утверждать, что они являются причиной болезни, в третьей - номера бактерий, про которые по результатам анализов ничего утверждать нельзя.
3 3 1 0 0 0 1 1 1 1 0 1 0 0
2 1 2 1 3 0
2 2 1 1 0 1 0 1
Incorrect
3 3 0 1 0 1 1 0 1 0 1 0 1 0
2 1 3 1 2 0
Королевство Флатландия имеет вид бесконечной двумерной плоскости. В королевстве находится \(n\) замков. Для более удобного составления карт в Флатландии была введена Декартова система координат. Известно, что \(i\)-й замок находится в точке с координатами \((x_i+0.5, y_i+0.5)\), где \(x_i\), \(y_i\) - целые числа. Местоположения всех замков попарно различны.
На старости лет король решил разделить на карте королевство между своими сыновьями прямыми, параллельными осям координат. Если прямая параллельна оси \(Ox\), то \(y\) координата у всех точек на прямой должна быть целым числом, иначе \(x\) координата у всех точек должна быть целым числом. В обоих случаях соответствующие целые координаты по модулю не должны превышать \(2 \cdot 10^9\). При этом Его величество хочет, что бы после разделения королевства любые два замка оказались бы в различных частях.
Помогите королю разделить королевство, используя не более чем \(n-1\) прямую. У любой пары прямых должно быть не более одной общей точки.
В первой строке задано целое число \(n\) (\(1 \le n \le 100\,000\)) - количество замков в королевстве. В следующих \(n\) строках записано по два числа \(x_i\) и \(y_i\) (\(-10^9 \le x_i \le 10^9\), \(-10^9 \le y_i \le 10^9\)) - целые части координат замков.
В первой строке выходного файла выведите количество используемых прямых. В следующих строчках выведите сами прямые, по одной в каждой строке. Если прямая параллельна оси \(Ox\), то выведите символ "y", а затем через пробел \(y\) координату всех точек на этой прямой, иначе выведите символ "x", а затем через пробел \(x\) координату всех точек на этой прямой.
4 0 2 0 3 1 2 1 3
2 y 3 x 1
Маленький Вася очень любит уравнения. Однажды ему на глаза попалось уравнение \(x + y + xy = n\). Вася захотел узнать количество пар целых неотрицательных чисел \(x\) и \(y\), которые являются решениями этого уравнения.
Так как Вася еще маленький, то он попросил вас посчитать это количество.
В единственной строке входного файла дано число \(n\) (\(0 \le n \le 10^9\)).
В единственную строку выходного файла выведите ответ на задачу.
Ниже перечислены все решения уравнения \(x + y + xy = 5\)
1. \(x = 0\), \(y = 5\)
2. \(x = 1\), \(y = 2\)
3. \(x = 2\), \(y = 1\)
4. \(x = 5\), \(y = 0\)
5
4
8
3
Воскресенье, утро. Пора на олимпиаду. Вениамин взял пачку чистой бумаги, ручку, пару бутербродов - что еще понадобится? - и открыл картографический сайт чтобы посмотреть, куда и как ему добираться. Какая удача! На пути есть прекрасный парк, а Вениамин как раз любит гулять по паркам. Парк представляет собой прямоугольное поле, разбитое на квадратные клеточки, в каждой из которых либо газон с дорожками, либо какое-то препятствие (заросли кустарника, деревья, а то и вовсе какой-нибудь огороженный памятник).
На олимпиаду нужно прийти вовремя, так что Вениамин не может позволить себе долго разгуливать по парку. Перемещение между двумя соседними по стороне клеточками парка занимает одну секунду. Вениамин не может устоять на месте, поэтому каждую секунду он перемещается в какую-либо соседнюю клеточку. Вениамин решил, что может позволить себе гулять лишние две секунды. Ваша задача: посчитать количество способов пройти через парк так, чтобы время прогулки было ровно на две секунды больше минимального.
Вход в парк и выход из него - это некоторые выделенные различные клетки в парке, выходить за пределы парка запрещается, передвигаться можно только между соседними по ребру клетками. Вениамин должен гулять на две секунды дольше оптимального времени прохода от входа к выходу, поэтому он может в качестве промежуточной точки пути оказаться на входе или выходе. Поскольку ответ на задачу может быть довольно большим, от вас требуется остаток от деления количества путей на \(10^9 + 9\).
В первой строке входного файла заданы два числа \(h\) и \(w\): размеры парка. Следующие \(h\)~строк содержат по \(w\) символов в каждой. Символ "." означает, что в соответствующей клетке дорожка или газон, по которому можно ходить. Символ "#" означает препятствие. Символы "E" и "X" означают вход в парк и выход из него соответственно.
Ограничения: \(1 \le h \le 500\), \(1 \le w \le 500\), символы "E" и "X" встречаются во входном файле ровно по одному разу. Обратите внимание, что вход и выход не обязательно находятся на границе парка: например, клеткой входа может быть расположенный в парке вестибюль метро, из которого Вениамин собирается выходить на своем пути.
В выходной файл выведите одно число: количество путей, которые длиннее кратчайшего ровно на две секунды. Если парк устроен так, что невозможно добраться от входа до выхода, то выведите ноль.
6 9 ......... ..######X ..#...... .E..####. ..##...#. .....#...
15