Рудольфа отправили в командировку на другую планету на $$$10^6$$$ дней. Поэтому он снял там квартиру, которую нужно оплачивать каждый месяц. Месяц на этой планете длится $$$M$$$ дней, а оплату нужно вносить в последние $$$H$$$ дней каждого месяца. Например, если $$$M=30$$$ и $$$H=10$$$, то заплатить можно в любой день с $$$21$$$-го по $$$30$$$-е число каждого месяца включительно. Командировка начинается в первый день месяца.
Рудольф может находиться в командировке не все время, иногда он может возвращаться домой. Каждые $$$B$$$ дней Рудольф приезжает в командировку на $$$A$$$ дней. Первый его приезд приходится на $$$C$$$-й день командировки. Например, если $$$A=15$$$, $$$B=25$$$ и $$$C=10$$$, то Рудольф находится на планете с $$$10$$$-го по $$$24$$$-й день включительно, далее с $$$35$$$-го по $$$49$$$-й день и т. д. Чтобы оплатить квартиру Рудольф должен находиться в командировке.
Есть $$$N$$$ дней, в которые Рудольф очень занят и никак не может выделить время, чтобы заплатить за квартиру. Если он не оплатит месяц, его выселят в первый день следующего месяца. При этом Рудольф снимает квартиру с первого дня командировки, независимо от того, в какой день он впервые приехал.
Вычислите, на какой день командировки Рудольфа выселят, или определите, что он сможет прожить все $$$10^6$$$ дней.
Первая строка входных данных содержит два целых числа $$$M$$$, $$$H$$$ $$$(1 \le H \lt M \le 1000)$$$ — количество дней в месяце и время оплаты.
Вторая строка содержит три целых чисел $$$A$$$, $$$B$$$, $$$C$$$ $$$(1 \le A \lt B \le 1000, 1 \le C \le 100)$$$ — количество дней пребывания, период поездок, первый день приезда.
Третья строка входных данных содержит целое число $$$N$$$ $$$(1 \le N \le 10^5)$$$ — количество занятых дней.
Следующая строка содержит $$$N$$$ различных целых чисел в порядке возрастания $$$X_i$$$ $$$(1 \le X_i \le 10^6)$$$ — занятые дни.
Выведите единственное целое число — день выселения или -1, если Рудольфа не выселили, то есть он прожил все $$$10^6$$$ дней.
30 10 15 25 10 2 21 60
61
50 30 30 40 20 2 25 40
-1
Недавно Рудольфу подарили хитрую головоломку — кубик Рубика $$$2 \times 2 \times 2$$$.
Это устройство представляет собой куб $$$2 \times 2 \times 2$$$ с $$$24$$$-мя видимыми цветными квадратами. Грани большого куба способны вращаться вокруг трех внутренних осей куба. Каждая из шести граней состоит из четырех квадратов и окрашена в один из шести цветов: белый, оранжевый, желтый, красный, синий и зеленый.
Вращая грани куба, можно переупорядочивать цветные квадраты множеством различных способов. Задача состоит в том, чтобы путем вращения граней получить такой порядок, что все квадраты на одной грани будут иметь одинаковый цвет.
Рудольф сразу же бросился изучать схемы сборки кубика. Для удобства он нарисовал его развертку и пронумеровал квадраты от $$$1$$$ до $$$24$$$, как представлено на рисунке $$$1$$$. Также он обозначил грани буквами F (фронтальная), U (верхняя), D (нижняя), L (левая), R (правая), B (задняя), как представлено на рисунке $$$2$$$. С учетом этих обозначений он стал записывать вращения граней куба двумя символами $$$SC$$$, где $$$S$$$ — одна из букв, обозначающих грань, а $$$C$$$ — число от $$$1$$$ до $$$3$$$, обозначающее количество поворотов грани по часовой стрелке. Например $$$L2$$$ будет означать поворот левой грани $$$2$$$ раза по часовой стрелке. Направление по часовой стрелке для каждой из граней представлено на рисунке $$$3$$$.
![]() | ![]() |
| Рисунок 1. Нумерация клеток кубика | Рисунок 2. Обозначения граней |
Рисунок 3. Направления вращения граней Изучая различные схемы сборки, Рудольф наткнулся на такие понятия, как алгоритм Бога и число Бога. Он узнал, что алгоритмом Бога называют любой алгоритм, собирающий головоломку за оптимальное число ходов. А число Бога — это наибольшее количество ходов в алгоритме Бога из всех возможных начальных состояний кубика. Он узнал, что для кубика Рубика $$$2 \times 2 \times 2$$$ это число равно $$$11$$$, с учетом, что одним ходом считается поворот одной грани $$$1$$$, $$$2$$$ или $$$3$$$ раза по часовой стрелке.
Рудольф сразу же захотел составить такой алгоритм, но так как он не Бог, он попросил вас помочь ему. Ваша задача по исходной конфигурации кубика Рубика вывести любую кратчайшую последовательность ходов, приводящую кубик в собранное состояние.
Первая строка содержит $$$24$$$ числа $$$C_i (1 \le C_i \le 6)$$$, которые обозначают цвет $$$i$$$-го квадрата в исходной конфигурации кубика Рубика.
Цвета нумеруются следующим образом:
Гарантируется, что состояние корректное и было получено путем вращений граней кубика из собранного состояния. При этом в собранном состоянии относительное расположение цветов граней совпадает с расположением цветов на рисунках $$$1$$$ и $$$2$$$, но куб может быть повернут, и фронтальной грани не обязательно соответствует белый цвет.
В первой строке выведите целое число $$$M$$$ — количество ходов.
Во второй строке выведите $$$M$$$ строк вида $$$SC$$$, где $$$S$$$ — одна из букв {F, U, D, L, R, B}, а $$$C$$$ — число от $$$1$$$ до $$$3$$$, обозначающих вращения граней кубика. Если решений несколько, выведите любое.
6 6 6 6 3 3 4 4 5 5 5 5 2 2 1 1 2 2 3 3 4 4 1 1
1 U1
5 5 5 5 3 3 3 3 6 6 6 6 1 1 1 1 4 4 4 4 2 2 2 2
0
6 4 1 1 4 5 3 3 5 5 2 3 1 4 2 1 3 6 6 2 2 5 4 6
6 U2 L3 F1 U1 L1 U3
Шутки ради Рудольфу также подарили кубик Рубика $$$1 \times 1 \times 1$$$.
Это устройство представляет собой куб $$$1 \times 1 \times 1$$$ с шестью видимыми цветными квадратами. Каждая из шести граней состоит из одного квадрата и окрашена в один из шести цветов: белый, оранжевый, желтый, красный, синий и зеленый.
Вращая куб, можно переупорядочивать цветные квадраты множеством различных способов.
Рудольф сразу же бросился изучать схемы сборки кубика. Для удобства он нарисовал развертку этого кубика и пронумеровал квадраты от $$$1$$$ до $$$6$$$, как представлено на рисунке $$$1$$$. Также он обозначил грани буквами F (фронтальная), U (верхняя), D (нижняя), L (левая), R (правая), B (задняя), как представлено на рисунке $$$2$$$. С учетом этих обозначений он стал записывать вращения куба двумя символами $$$SC$$$, где $$$S$$$ — одна из букв, обозначающих грань, а $$$C$$$ — число от $$$1$$$ до $$$3$$$, обозначающее количество поворотов грани по часовой стрелке. Например, $$$L2$$$ будет означать поворот левой грани $$$2$$$ раза по часовой стрелке. Направление по часовой стрелке для каждой из граней представлено на рисунке $$$3$$$.
![]() | ![]() |
| Рисунок 1. Нумерация клеток кубика | Рисунок 2. Обозначения граней |
Рисунок 3. Направления вращения граней Так как просто собрать этот кубик Рудольфу показалось слишком легко, он решил собрать его так, чтобы фронтальная сторона оказалась белой. Ваша задача по исходной конфигурации кубика Рубика вывести любую кратчайшую последовательность ходов, приводящую кубик в собранное состояние.
Первая строка содержит $$$6$$$ чисел $$$C_i (1 \le C_i \le 6)$$$, которые обозначают цвет $$$i$$$-го квадрата в исходной конфигурации кубика Рубика.
Цвета нумеруются следующим образом:
Гарантируется, что состояние валидное и было получено путем вращений граней кубика из собранного состояния.
В первой строке выведите целое число $$$M$$$ — количество ходов.
Во второй строке выведите $$$M$$$ строк вида $$$SC$$$, где $$$S$$$ — одна из букв {F, U, D, L, R, B}, а $$$C$$$ — число от $$$1$$$ до $$$3$$$, обозначающих вращения граней кубика. Если решений несколько, выведите любое.
1 2 3 4 5 6
1 L1
2 1 4 3 6 5
0
Рудольф очень любит классические алгоритмические задачи. В том числе задачу о наибольшей возрастающей подпоследовательности.
Наибольшая возрастающая подпоследовательность (НВП) массива $$$A$$$ длины $$$N$$$ — это последовательность $$$A[i_1] \lt A[i_2] \lt ... \lt A[i_k]$$$ элементов массива $$$A$$$ таких, что $$$i_1 \lt i_2 \lt ... \lt i_k$$$, $$$0 \le i_j \lt N$$$, причём $$$k$$$ — наибольшее из возможных.
Обычно данную задачу решают для массива целых чисел. Однако это слишком скучно. Рудольф подготовил массив пар целых чисел, причём одна пара больше другой, только если одновременно и первый, и второй элемент пары больше соответствующих элементов другой пары.
Чтобы вам было веселее, введём ещё одно условие — перед поиском НВП порядок пар в массиве можно изменить. Очевидно, что Рудольф будет менять порядок пар так, чтобы максимизировать НВП.
Первая строка входных данных содержит целое число $$$N$$$ ($$$1 \le N \le 2 \cdot 10^5$$$) — количество элементов в массиве.
Следующие $$$N$$$ строк содержат элементы массива. Каждая строка содержит целые числа $$$F_i$$$ и $$$S_i$$$ ($$$1 \le F_i, S_i \le 10^9$$$) — первый и второй элемент $$$i$$$-й пары соответственно.
Выведите одно целое число — длину наибольшей возрастающей подпоследовательности.
5 1 5 5 1 2 2 3 3 4 1
2
10 7 9 10 1 3 2 7 8 4 5 4 8 7 7 1 3 5 17 1 3
3
Рудольф решил таки сменить сотового оператора и перейти на Минифон. Это единственный оператор, у которого можно выбрать телефонный номер любой длины, не превышающей 103. К сожалению, длина — это единственное, что можно выбрать. Сами номера генерируются из некоторого стартового номера посредством выполнения следующей операции: i-я цифра очередного j-го номера телефона будет равна цифровому корню суммы первых i цифр (j - 1)-го номера телефона. Цифровой корень любой цифры равен этой цифре. Цифровой корень любого числа равен цифровому корню суммы его цифр. Например, цифровой корень числа 65536 равен 7, потому что 6 + 5 + 5 + 3 + 6 = 25 и 2 + 5 = 7. Стартовый номер считается первым.
Рудольф знает стартовый номер, на основе которого сотовый оператор генерирует все номера телефонов, а также порядковый номер своего номера телефона. И ему стало интересно, сколько цифр каждого вида суммарно содержится в первых K номерах. Помогите Рудольфу ответить на этот вопрос.
Первая строка содержит целые числа N и K (1 ≤ N ≤ 103, 1 ≤ K ≤ 1012) — длину телефонного номера, выбранную Рудольфом, и порядковый номер номера телефона Рудольфа.
Далее следует строка длины N, состоящая из символов цифр — стартовый номер телефона сотового оператора.
В первую строку выведите 10 целых чисел, разделенных пробелами — суммарное количество символов 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, содержащихся в первых K номерах телефонов, сгенерированных сотовым оператором Минифон по описанному выше алгоритму.
3 4 103
1 5 1 2 1 0 1 0 0 1
11 12 89233690165
1 19 11 13 13 17 9 9 20 20
В первом примере будут сгенерированы следующие 4 номера:
Это интерактивная задача.
Рудольф предложил Бернарду сыграть в наперстки, но не совсем обычные. Он выложил в ряд $$$N$$$ наперстков, положил под два из них по шарику и перемешал. После этого Бернард должен был назвать номера наперстков, под которыми находятся шарики. Но Бернард был усталый и не смог уследить за Рудольфом.
Чтобы Бернард не расстроился Рудольф предложил по-другому угадать номера наперстков. Он разрешил Бернарду сделать $$$50$$$ запросов вида «? L R» $$$(1 \le L \le R \le N)$$$. В ответ на каждый запрос Рудольф ответит, сколько шариков находится под наперстками в диапазоне от $$$L$$$ до $$$R$$$.
Бернард боится упасть в глазах Рудольфа, если не решит и эту задачу. Поэтому он попросил Вас помочь ему.
Первая строка содержит одно целое число $$$N$$$ $$$(2 \leq N \leq 10^6)$$$ — количество наперстков.
Выведите в стандартный поток строку вида «! X Y», где $$$X, Y (1 \le X \lt Y \le N)$$$ — позиции наперстков, под которыми находятся шарики.
Чтобы сделать запрос, выведите в стандартный поток строку вида «? L R» $$$(1 \le L \le R \le N)$$$. После этого выведите перевод строки и выполните операцию $$$flush$$$.
В ответ на запрос придёт одно целое число — количество шариков в диапазоне от $$$L$$$ до $$$R$$$.
Чтобы вывести ответ на задачу, выведите в стандартный поток строку вида «! X Y», где $$$X, Y (1 \le X \lt Y \le N)$$$ — позиции наперстков, под которыми находятся шарики, и завершите программу.
Если вы сделаете более $$$50$$$ запросов вида «? L R» или сделаете некорректный запрос, решение получит вердикт «Неправильный ответ».
Если в какой-то момент ваша программа ничего не будет выводить или вы забудете выполнить операцию $$$flush$$$ после вывода вопроса или ответа, решение получит вердикт «Решение зависло».
Чтобы выполнить операцию $$$flush$$$, можете использовать (сразу после вывода запроса и перевода строки):
10 1 1 2 1 0
? 2 4 ? 3 3 ? 2 10 ? 5 6 ? 6 6 ! 3 5
Рудольфу очень срочно нужно купить самый красивый букет цветов. Придя в цветочный магазин, Рудольф увидел, что в нём есть ровно $$$N$$$ цветков, стоящих в ряд.
Флорист, работающий в магазине, подсказал Рудольфу, что самые красивые букеты получаются, если собрать непрерывный подотрезок цветков, причём в нём должны быть цветы ровно $$$K$$$ различных видов.
Рудольф задумался, сколько существует способов купить самый красивый букет в этом цветочном магазине.
Первая строка содержит целые числа $$$N$$$ и $$$K$$$ ($$$1 \le K \le N \le 3 \cdot 10^5$$$) — соответственно количество цветков в магазине и количество различных видов цветов, что должны быть в букете.
Вторая строка содержит $$$N$$$ целых чисел $$$A_i$$$ ($$$1 \le A_i \le 10^9$$$) — виды, к которым относятся цветки.
Выведите одно целое число — количество способов купить самый красивый букет.
8 2 1 2 1 2 1 3 1 2
14
8 3 1 2 1 2 1 3 1 2
14
Существует дилемма, известная как проблема вагонетки. В ней вы управляете движущимся к переезду поездом. На переезде вы можете сменить текущее направление движения на альтернативное. По исходному направлению на пути поезда лежит пять человек, а по альтернативному — один. Кто-то так или иначе погибнет.
Рудольф столкнулся с этой проблемой в несколько большем масштабе. Существует разветвленная сеть железных дорог, состоящая из развилок, соединенных односторонними дорогами. Сеть ациклична, то есть поезд не может дважды оказаться на одной развилке. Поезд начинает с развилки номер $$$1$$$. На дорогах расположены люди.
Некоторые развилки являются управляемыми, то есть можно выбрать одну из двух дорог, и поезд может ехать только по указанной дороге. Управляемыми могут быть только те развилки, от которых идут ровно две дороги. Чтобы поменять направление управляемой развилки, нужно дернуть один из рычагов. При этом один рычаг может отвечать сразу за несколько развилок, то есть все развилки, управляемые одним рычагом, переключаются одновременно. Каждая развилка управляется только одним рычагом.
Перед поездкой Рудольф может переключить любые рычаги. Он хочет сделать это так, чтобы поезд доехал до любого тупика (развилки, из которой нет дорог), сбив как можно меньше людей. Помогите ему вычислить минимальное количество жертв.
Первая строка входных данных содержит два целых числа $$$N$$$, $$$M$$$ $$$(1 \le N \le 1000, N-1 \le M \le min(20000, \frac{N\cdot(N-1)}{2}))$$$ — количество развилок и количество дорог.
Следующие $$$M$$$ строк содержат по три целых числа $$$A$$$, $$$B$$$, $$$C$$$ $$$(1 \le A, B \le N, 1 \le C \le 1000)$$$ — описание дороги: номер развилки, в которой начинается дорога; номер развилки, в которой заканчивается дорога; количество людей на дороге.
Следующая строка содержит целое число $$$G$$$ $$$(0 \le G \le N)$$$ — количество управляемых развилок.
Следующие $$$G$$$ строк содержат по три целых числа $$$X$$$, $$$Y$$$, $$$Z$$$ $$$(1 \le X, Z \le N, 1 \le Y \le 10)$$$ — описание управляемой развилки: номер развилки; номер рычага, отвечающего за развилку; и номер развилки, в которую идет дорога, на которую изначально указывает данная развилка.
Выведите единственное целое число — минимальное количество людей, попавших под поезд.
8 10 1 2 4 1 3 6 2 4 3 2 5 2 4 6 2 3 7 10 3 8 12 3 8 8 7 5 6 3 6 13 2 1 1 3 2 1 5
9
5 5 1 2 15 1 3 5 3 4 8 3 5 7 2 5 2 2 1 2 2 3 4 5
12
Недавно Рудольф услышал, что в следующем году литераторы будут праздновать двухсотдвадцатипятилетие со дня рождения Александра Сергеевича Пушкина. Рудольф начал развлекаться, выбирая случайно какие-нибудь день, месяц, год и подсчитывая, сколько будет дней рождения у родившегося в данный день до определённого года.
Однако Рудольф понял, что не всё так просто, если день рождения был 29 февраля, ибо этот день есть только в високосных годах. Високосным является год, чей номер либо делится без остатка на $$$400$$$, либо делится без остатка на $$$4$$$, но не делится на $$$100$$$. Поэтому данные люди будут праздновать день рождения далеко не каждый год.
Пока Рудольф занят подготовкой к празднованию для рождения Пушкина, подсчитайте, сколько раз был день рождения человека, родившегося в заданную дату до указанного года включительно. При этом тот год, когда человек родился, учитывать не надо.
Первая строка содержит целое число $$$T$$$ ($$$1 \le T \le 10^5$$$) — количество тестов.
Следующие $$$T$$$ строк содержат описания тестов. Каждый тест содержит целые числа $$$D$$$, $$$M$$$, $$$Y$$$, $$$YE$$$ ($$$1 \le D \le 31$$$, $$$1 \le M \le 12$$$, $$$1 \le Y \lt YE \le 2 \cdot 10^6$$$) — соответственно день, месяц, год рождения и номер года, до которого нужно подсчитать количество дней рождения. Гарантируется, что дата является корректной.
Выведите $$$T$$$ целых чисел — количество дней рождения, которые будут отпразднованы в каждом из тестов.
5 15 1 1975 1976 15 1 1975 2020 7 10 2002 3001 29 2 2024 2140 29 2 2020 2035
1 45 999 28 3
Рудольф, как истинный фанат математики, приобрел необычные часы. Они имеют форму правильного N-угольника и две стрелки бесконечной длины (часовую и минутную). Часы не имеют никаких делений или надписей на циферблате. Стрелки закреплены в центре часов.
Изначально часы не откалиброваны. Чтобы их откалибровать, необходимо для текущего момента времени правильно ввести в калибровочное устройство положение стрелок часов, которое задается координатами точки пересечения каждой стрелки с границей циферблата.
Помогите Рудольфу правильно определить нужные значения.
На рисунке приведен вид шестиугольных математических часов Рудольфа с наложенным для наглядности круговым циферблатом. Часы показывают время 15:40.
Первая строка содержит текущее время в формате «HH:MM» (0 ≤ HH ≤ 23, 0 ≤ MM ≤ 59) — часы и минуты, разделенные символом «:».
Вторая строка содержит целые числа N и A (3 ≤ N ≤ 100, 1 ≤ A ≤ 1000) — количество углов и длину стороны циферблата часов.
Считать, что начало координат совпадает с центром часов, ось ординат направлена вверх, ось абсцисс направлена вправо, один из углов циферблата лежит на оси ординат и имеет положительную ординату.
Выведите четыре вещественных числа — координаты точек пересечения часовой и минутной стрелки с границей циферблата. Ваш ответ будет считаться правильным, если его относительная или абсолютная погрешность не будет превышать 10 - 6.
15:40 6 2
1.7320508 -0.6304149 -1.7320508 -1.0
12:00 3 1
0.0 0.5773502 0.0 0.5773502