Страница: 1 2 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Интернет-банкинг - это современная технология, которая позволяет клиентам банка получать доступ к информации о своих счетах с помощью сети Интернет из практически любой точки земного шара. Разумеется, при использовании интернет-банкинга большую роль играют вопросы безопасности. Поэтому для доступа к системе Интернет-банкинга пользователю необходимо ввести пароль.

Система Интернет-банкинга Bank 2.0, используемая одним Очень Крупным Банком, использует следующий способ ввода пароля. Серверной частью системы случайно генерируются \(n\) строк \(s_1, \ldots, s_n\), каждая из которых состоит из \(m\) строчных букв латинского алфавита (предполагается, что пароли состоят только из таких букв).

При вводе пароля пользователю разрешается выполнять такую операцию: выбрать из данных строк две
(обозначим их как \(s_i\) и \(s_j\), \(1 \le i, j \le n\), \(i \ne j\)) и некоторую позицию \(k\) (\(1 \le k \le m\)) в них, после чего поменять местами \(k\)-е символы в \(s_i\) и \(s_j\). Например, если \(s_i="abcde"\), \(s_j="vwxyz"\), \(k=3\), то после выполнения этой операции будут верны следующие равенства: \(s_i="abxde"\) и \(s_j="vwcyz"\). Для ввода пароля пользователю необходимо за минимальное число таких операций добиться состояния, в котором хотя бы одна из строк \(s_1, \ldots, s_n\) совпадает с \(p\).

Ваша задача состоит в том, чтобы написать программу, которая по заданному набору строк \(s_1, \ldots, s_n\) и паролю пользователя \(p\) определит минимальное число операций указанного типа, которые необходимо выполнить для ввода пароля, а также найдет способ ввода пароля за такое число операций.

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

Первая строка входного файла содержит целое число \(n\) (\(2 \le n \le 100\)). Каждая из последующих \(n\) строк содержит строки \(s_1, \ldots, s_n\). Все они состоят только из строчных букв латинского алфавита и имеют одинаковую длину \(m\) (\(2 \le m \le 100\)).

Последняя строка входного файла содержит пароль пользователя \(p\). Его длина равна \(m\), и он состоит только из строчных букв латинского алфавита.

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

Первая строка выходного файла должна содержать минимальное число \(c\) операций, необходимых для ввода пароля. Если с помощью описанных в условии операций пароль ввести нельзя, то выведите в первой строке \(-1\).

В случае существования решения следующие \(c\) строк должны содержать описания операций. Операции должны быть перечислены в порядке их применения, каждая из строк должна содержать три целых числа: \(i\), \(j\) и \(k\) (\(1 \le i, j \le n\), \(i \ne j\), \(1 \le k \le m\)).

Эти числа означают, что соответствующая операция состоит в обмене \(k\)-ых символов строк \(s_i\) и \(s_j\).

Примеры
Входные данные
3
abc
cab
bca
acb
Выходные данные
2
1 3 2
1 2 3
Входные данные
3
abc
cab
bca
acd
Выходные данные
-1
ограничение по времени на тест
5.0 second;
ограничение по памяти на тест
256 megabytes

Приехав в Хоббитанию, белый маг Гэндальф принялся рассказывать Бильбо последние новости из Средиземья. Больше всего впечатлительного хоббита поразил рассказ о Большом огромном коллайдере - только представить себе гигантских размеров кольцо, зарытое под землей!

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

Бильбо хочет прокопать новые коридоры в норе, но так как копать будут только Фродо и сам Бильбо (не Гэндальф же!) , есть возможность прокопать только один или два новых коридора.

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

Помогите Бильбо выбрать такие один или два новых коридора, чтобы коллайдер имел максимальную возможную длину, то есть состоял из максимального возможного числа комнат.

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

В первой строке входного файла содержится целое число \(n\) (\(3 \le n \le 100\,000\)) - число комнат в норе Бильбо.

В следующих \(n - 1\) строках содержатся по два целых числа - номера комнат, соединенных коридорами. Комнаты нумеруются от \(1\) до \(n\).

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

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

На следующих одной или двух строках выведите пары номеров комнат, между которыми следует прокопать новые коридоры.

Если существует несколько возможных планов строительства коллайдера максимальной длины, выведите любой из них.

Пояснения к примерам

В первом примере коллайдер состоит из комнат с номерами 1, 2, 3 и 4 (именно в этом порядке), во втором примере - 1, 3, 2, 4.

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

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

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

Некоторые из посетителей уходя закрывают шкафчик, а другие - не закрывают. Так как все посетители фитнесс-клуба посещают его уже достаточно давно, то про каждого из них персонал клуба знает, закроет ли он свой шкафчик, когда будет уходить. Таким образом, для каждой тренировки известно два числа: число \(a_i\) посетителей, которые закроют шкафчик, и число \(b_i\) посетителей, которые не закроют.

В начале дня все \(k\) шкафчиков закрыты. Разумеется, персоналу клуба хочется, чтобы в конце дня также как можно больше шкафчиков были закрыты - тогда надо будет меньше работать при подготовке к очередному дню. Для того, чтобы достичь этой цели, персонал может выдавать ключи от шкафчиков посетителям произвольным образом. Например, имеет смысл выдавать ключ от открытого шкафчика тому, кто его точно закроет.

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

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

Первая строка входного файла содержит два целых числа: \(n\) (\(1 \le n \le 100\)) и \(k\) (\(1 \le k \le 1000\)). Каждая из последующих \(n\) строк содержит по два целых числа \(a_i\) и \(b_i\) (\(0 \le a_i, b_i \le k\), \(a_i + b_i \le k\)).

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

В выходной файл выведите одно число - ответ на задачу.

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

Пронумеруем шкафчики числами от \(1\) до \(4\). Посетителям, пришедшим на первую тренировку выдадим ключи так: тому, кто закроет, - от шкафчика \(1\), тем, кто не закроет, - от \(2\) и \(3\). Посетителям, пришедшим на вторую тренировку, выдадим ключи так: тому, кто закроет, - номер \(2\), тому, кто не закроет, - номер \(3\). В итоге открытым после окончания дня останется только шкафчик номер \(3\).

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

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

Вот и сейчас ему поручили проверить два стоящих на расстоянии \(d\) друг от друга столба высоты \(h_1\) и \(h_2\) соответственно. Чтобы убедиться, что все хорошо, Джо должен побывать на вершинах обоих столбов.

Электрик-ковбой посещает столбы следующим образом: сначала он выбирает один из столбов и просто взбирается на него. Выполнив все работы на вершине, он спускается по этому столбу на некоторую высоту (возможно до самой земли), достает свое лассо и цепляется им за некоторую точку второго столба (это может быть произвольная точка). После этого Джо прыгает и двигается вниз по дуге окружности с центром в точке, за которую зацепилось лассо, пока не достигнет либо другого столба, либо земли.

При этом если от начальной позиции электрика до конца его полета высота изменяется более чем на \(l\), то ковбой набирает слишком большую скорость, больно ударяется и попадает в больницу, так и не выполнив работу. Поэтому Джо всегда аккуратно выбирает параметры прыжка.

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

Джо просит вас помочь ему выполнить работу, сообщив какое минимальное расстояние ему придется лезть вверх по столбам.

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

Входной файл содержит четыре положительных целых числа: \(d\), \(h_1\), \(h_2\) и \(l\) - расстояние между столбами, высоту первого и второго столбов и максимальный допустимый перепад высот при прыжке, соответственно. Все числа во входном файле не превышают \(10^6\).

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

Выведите ответ с максимальной возможной точностью. Ответ будет проверяться с точностью до \(10^{-5}\).

Примеры
Входные данные
5 5 5 5
Выходные данные
10.0
Входные данные
4 5 8 5
Выходные данные
10.0
Входные данные
4 8 5 1
Выходные данные
13.0
Входные данные
3 4 6 1
Выходные данные
9.0
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

Билетик называется счастливым, если сумма цифр на четных позициях в его номере равна сумме цифр на нечетных позициях.

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

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

В единственной строке входного файла задан номер Ваниного билетика - натуральное число, имеющее в своей десятичной записи не более 100 цифр.

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

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

Примеры
Входные данные
123123
Выходные данные
123134
Входные данные
99
Выходные данные
110

Страница: 1 2 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест