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

Сегодня Маша принимает гостей. Включая Машу, в празднике принимает участие \(n\) человек, которые расселись по кругу за большим круглым столом.

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

Проводив гостей, Маша вспомнила, что забыла телефон на месте, на котором она сидела в конце мероприятия. Маша не помнит, на каком месте она сидела в конце, зато помнит, на каком месте она сидела в начале, а также помнит, что она ровно \(k\) раз менялась местами с одним из соседей. Теперь она хочет узнать количество мест, на которых она могла оказаться в конце вечера.

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

Входные данные содержат два натуральных числа \(n\) и \(k\) — количество мест за столом и число раз, которое Маша менялась местами с одним из своих соседей (\(3 \le n \le 10^9 , 0 \le k \le 10^9\) ).

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

Выведите одно число — количество мест, на которых Маша могла оказаться в конце мероприятия.

Замечание

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

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Каждое утро жители столицы Берляндии вынуждены стоять в ужасных пробках по дороге на работу. Особенно сильно эти пробки заметны на центральной площади столицы, которая представляет собой перекресток, да еще и нерегулируемый — берляндцы стремятся сохранить нетронутым исторический облик центра города.

Решив заняться исследованием ситуации, мэр столицы поручил изучить, как именно скапливаются пробки. Ведь на перекрестке запрещены повороты, таким образом, машины могут проезжать перекресток только прямо. Установив специальные датчики, специалисты выяснили, что каждое утро перекресток пытаются проехать n машин. К перекрестку подходят улицы с четырех сторон: если посмотреть на карту, то эти улицы идут в направлении вверх «U», влево «L», вниз «D» и вправо «R». На каждой из улиц в процессе проезда перекрестка может скапливаться очередь из машин.

Каждый водитель при подъезде к перекрестку действует следующим образом: \(i\)-й водитель подъезжает к перекрестку в начале \(t_i\)-й секунды, встает в конец очереди на этой улице и анализирует ситуацию.

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

У водителя перед перекрестком есть помеха справа, если на перпендикулярном направлении справа в очереди есть хотя бы одна машина. Таким образом, водителям, пытающимся проехать перекресток в направлении вверх, мешают машины, стоящие в очереди в направлении влево, направлению влево мешают машины из очереди в направлении вниз, и так далее. Заметим, что если все четыре очереди непусты, то у каждого водителя есть помеха справа, и они уже никогда не проедут перекресток.

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

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

Первая строка содержит целое число n — количество машин, подъезжающих к перекрестку (\(1 \le n \le 10^5\) ).

В каждой из следующих n строк содержится число \(t_i\) и символ \(d_i\) — номер секунды, в начале которой \(i\)-я машина подъезжает к перекрестку, и направление, в котором она пытается его проехать (\(0 \le t_i \le 10^9\) , \(d_i\) равно «U», если машина едет вверх по карте, «L», если машина едет влево, «D», если вниз, и «R», если вправо). Машины во вводе заданы в порядке неубывания \(t_i\)

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

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

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

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

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

На свитке изображена прямоугольная таблица, содержащая \(n\) строк и \(m\) столбцов, в каждой ячейке которой написана латинская буква. Заклинание представляет собой строку, также состоящую из латинских букв. Чтобы активировать заклинание, необходимо бесконечное число раз произнести эту строку, перемещая при этом конец волшебной палочки по таблице на свитке вдоль подходящей циклической последовательности ячеек.

Назовем циклической последовательностью ячеек такую последовательность ячеек \((x_1, y_1),(x_2, y_2)\dots(x_k, y_k)\), что каждая пара соседних в последовательности ячеек, а также первая и последняя ячейки в последовательности, не совпадают и имеют общую сторону. Таким образом, при перемещении конца волшебной палочки вдоль последовательности, каждый раз необходимо переместиться в соседнюю ячейку вверх, влево, вправо или вниз, а в конце — вернуться в начальную ячейку. При этом одна и та же ячейка может встречаться в последовательности несколько раз.

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

Помогите Гидеону найти подходящую циклическую последовательность, либо выясните, что та- кой последовательности не существует.

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

Первая строка содержит целые числа \(n\), \(m\) и \(l\) — высоту и ширину таблицы, а также длину заклинания, соответственно (\(2 \le n, m \le 200, 1 \le l \le 200\)).

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

В последней строке содержится строка из \(l\) строчных латинских букв — заклинание.

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

Если искомой последовательности не существует, в единственной строке выведите «NO».

Иначе, в первой строке выведите «YES». Во второй строке выведите \(k\) — длину последовательности, \(k\) не должно превышать \(10^7\) . Гарантируется, что если ответ существует, то существует ответ с \(k\), не превышающим \(10^7\) .

В третьей строке выведите координаты первой ячейки последовательности: сначала номер строки, а потом номер столбца, на пересечении который находится эта ячейка. Наконец, в последней строке выведите строку длины \(k\), состоящую из символов «U», «L», «D», «R», которая описывает последовательность перемещения конца волшебной палочки по ячейкам в искомой циклической последовательности.

Символ «U» соответствует переходу из текущей ячейки в соседнюю сверху, символ «L» — в соседнюю слева, «D» — в соседнюю снизу, а «R» — в соседнюю справа.

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

Если ответов несколько, выведите любой.

Замечание

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

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

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

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

Во входном файле задано одно целое число \(n\) — количество ступеней эскалатора (\(1 \le n \le 10^{12}\)).

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

Выведите суммарное количество цифр в номерах подписанных ступенек.

Замечание

В первом примере номера будут написаны на ступеньках 1, 10, 20; во втором — 1, 10, 20, 23.

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Джон — фанат сериала «Во все престолы». Совсем скоро выходит новый сезон, и Джон хочет его посмотреть.

Серии будут выходить по одной в день. Джону не хочется скачивать их каждый раз вручную, поэтому он собирается написать программу, которая будет делать это за него. Каждая серия — это отдельный файл, размер файла, содержащего \(i\)-ю серию, равен \(s_i\) байт.

Программа Джона будет действовать следующим образом. Она один за другим будет отправлять на сервер запросы, где \(j\)-й запрос представляет собой «загрузить очередные \(x_j\) байт». В ответ на такой запрос сервер возвращает пакет данных, содержащий очередные \(x_j\) байт файла, а также заголовок, содержащий \(k\) байт различной служебной информации. Таким образом, размер пакета равен \(x_j + k\) байт, при этом значение \(k\) одно и то же для всех запросов.

Когда в результате некоторого запроса скачивается последний байт файла, программа завершает свою работу и не делает дальнейших запросов к серверу. Однако протокол устроен таким образом, что размер пакета равен \(x_j + k\), даже если был достигнут конец файла и в действительности было загружено меньше \(x_j\) байт полезной информации.

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

Из-за утечки информации от создателей сериала Джону известен размер каждой серии. Помогите ему узнать, какой минимальный суммарный размер пакетов придётся загрузить, чтобы скачать все серии.

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

В первой строке входного файла заданы целые числа \(n\) и \(k\) — количество серий и размер заголовка пакета (\(1 \le n \le 10000; 0 \le k \le 10^9\) ). Во второй строке задано n целых чисел \(s_i\) — размеры серий (\(1 \le s_i \le 10^9\) ).

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

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

Замечание

В первом примере можно сначала загрузить 200 байт, а затем 600. Тогда первые три серии будут скачаны после первого запроса и на каждую из них будет потрачено по 200 + 1000 = 1200 байт. Последняя серия будет скачана за два запроса, на нее будет потрачено (200+1000)+(600+1000) = 2800 байт. Итого 1200 + 1200 + 1200 + 2800 = 6400 байт.

Во втором примере заголовка нет, поэтому можно не бояться делать много запросов. Например, можно загружать блоками по 100 байт.


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