Рудольф все лето собирал смородину, малину и вишню и закатывал их в банки. Каждая банка содержит только один вид ягод, и во всех банках их одинаковое количество. В конце лета Рудольф достал все ягоды из банок и выложил их в одну кучу. В куче оказался один миллион ягод.
Рудольф очень любит черную смородину, поэтому он посчитал количество этих ягод, и их оказалось $$$n$$$ штук. Но затем он понял, что во время сбора посчитал черную и красную смородину одинаковыми ягодами и сложил их вперемешку в одни банки. При этом Рудольф помнит, что доля банок со всей смородиной от всех банок составляет $$$p$$$.
Теперь Рудольф хочет понять, какую долю от всей собранной смородины составляет черная смородина.
Первая строка содержит целое число $$$n$$$ и вещественное число $$$p$$$ ($$$0 \le n \le 10^6, 0.1 \le p \le 1$$$) — количество черной смородины и доля банок со смородиной. Число $$$p$$$ содержит не больше $$$6$$$ знаков после запятой.
Выведите единственное вещественное число — долю черной смородины. Гарантируется, что ответ находится в диапазоне от $$$0$$$ до $$$1$$$.
Ответ будет считаться правильным, если его абсолютная или относительная ошибка не превосходит $$$10^{-6}$$$.
Формально, пусть ваш ответ равен $$$a$$$, а ответ жюри равен $$$b$$$. Ваш ответ будет зачтен, если и только если $$$\frac{|a - b|}{\max{(1, |b|)}} \le 10^{-6}$$$.
250000 0.5
0.5000000000
0 0.9
0.0000000000
100000 0.1
1.0000000000
Рудольф решил участвовать в турнире по программированию CodeForSquares CodeCup. Организаторы соревнований используют для связи с участниками начинающий набирать популярность текстовый мессенджер Codegram.
Перед турниром Рудольф решил отдохнуть и поставить мессенджер на бесшумный режим, однако, чтобы не пропустить важные сообщения, имеющие отношение к предстоящим соревнованиям, он собирается настроить Codegram соответствующим образом. Рудольф уверен, что все сообщения, имеющие отношение к турниру по программированию, будут содержать слово codecup, поэтому он собирается написать фильтр сообщений, который будет подавать звуковой сигнал при получении сообщения со словом codecup.
К сожалению, Codegram пока ещё недостаточно надежен — при передаче сообщений возможны ошибки: в некоторых словах иногда пропадают отдельные буквы. Хорошо, что в каждом слове может пропасть не более одной буквы! Например, слово codecup при передаче может быть искажено на codecp или на codcup, но не может быть искажено на codecap (одна из букву изменилась на другую) или cdecp (две буквы пропали).
Рудольф так устал, готовясь к турниру, что случайно заснул, не настроив мессенджер. Помогите ему написать программу, которая читает сообщения и определяет, содержало ли какое-то из них важное для него слово codecup.
Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 100$$$) — количество слов в сообщении.
Следующая строка содержит $$$n$$$ непустых слов, разделенных одним пробелом, составляющих сообщение. Длина каждого слова от 1 до 25 символов. Слова состоят из строчных букв английского алфавита. В начале и конце строки пробелов нет.
Выведите «Yes», если входное сообщение могло содержать слово codecup с учетом ошибок при передаче. Выведите «No», если слова codecup во входном сообщении не могло быть.
Гарантируется, что ошибки при передаче сообщений не затрагивают пробелы, разделяющие слова.
4 codeforsquares codecup coming soon
Yes
3 cdecup is postponed
Yes
5 abracadabra code cup hello all
No
3 qwertycodecup coming soon
No
4 codeforsquares codecap coming soon
No
Рудольф тренируется решать задачи на популярном сайте CodeForSquares. Бернард следит за Рудольфом, чтобы тот тренировался достаточно усердно.
Чтобы убедить Бернарда, Рудольф показывает статистику решенных задач. Статистика выглядит следующим образом. Есть картинка, где каждому дню соответствует небольшой квадратик изначально белого цвета. При решении задач в этот день соответствующий квадратик начинает перекрашиваться в зеленый цвет. Квадратик будет полностью закрашен, если Рудольф решит хотя бы $$$3$$$ задачи в этот день. Такой день назовем 'успешным' (любое промежуточное состояние все равно не устроит Бернарда).
Рудольф сдал несколько задач, он знает точное местное время, когда они были сданы. Может так получиться, что в некоторые дни Рудольф сдал меньше $$$3$$$ задач. Однако он может переехать с Бернардом в другой часовой пояс, в котором все времена сдачи задач будут смещены на одинаковое целое число часов. Улучшит ли это ситуацию с закрашенными квадратиками? Посчитайте, какое максимальное количество подряд идущих дней могут быть успешными, если Рудольф может переехать в другой часовой пояс.
Первая строка содержит целое число $$$n$$$ ($$$1 \leq n \leq 2\cdot 10^5$$$) — количество задач, решенных Рудольфом.
Вторая строка содержит $$$n$$$ целых чисел $$$t_i$$$ — время в минутах, прошедшее с начала первого дня тренировок Рудольфа до сдачи соответствующей задачи, $$$0 \leq t_i \leq 10^9$$$. Все времена различны и расположены в порядке возрастания.
Напоминаем, что в каждом часе ровно $$$60$$$ минут, а в каждом дне $$$24$$$ часа. Соответственно, считается, что задача сдана в день $$$d$$$, если ее время сдачи соответствует неравенству $$$d \cdot 1440 \leq t_i \lt (d+1) \cdot 1440$$$.
Обратите внимание, что Рудольф может остаться в текущем часовом поясе.
Выведите единственное число — максимальное количество подряд идущих успешных дней, которое может получить Рудольф.
7 101 202 303 404 505 606 707
2
3 0 1 1439
1
3 0 1 1440
0
В первом примере можно переехать $$$18$$$ часовых поясов, увеличив время решения каждой задача на $$$18\cdot 60$$$. При этом первые $$$3$$$ задачи будут сданы в первый день, а последние $$$3$$$ задачи — во второй. Итого, получится $$$2$$$ успешных дня подряд.
Во втором примере Рудольфу не надо никуда переезжать, тогда день будет успешным.
Кондитерская «Слойки на вынос» всегда имеет большое количество заказов. Для изготовления слоек используется Автоматическая Машина Выпечки Х (АМВ Х), которая может изготовить одну слойку за $$$t_0$$$ минут.
Со временем машина стала барахлить и теперь может изготовить подряд только $$$b$$$ слоек, после чего должна «отдохнуть» $$$k$$$ минут. После «отдыха» машина может снова испечь до $$$b$$$ слоек, потом ей надо снова «отдохнуть» и т.д.
Чтобы не терять клиентуру из-за невозможности выполнить заказы в срок, хозяйка кондитерской, Ванесса, приобрела $$$n$$$ новых Автоматических Машин Выпечки ХХ (АМВ ХХ), которые могут работать круглосуточно без перерыва. $$$i$$$-я новая машина может изготовлять одну слойку за $$$t_i$$$ минут. Все машины могут работать одновременно.
При наличии одной машины для выпечки Ванесса могла легко подсчитать время, необходимое на выпекание необходимого числа слоек. С новыми машинами расчеты стали труднее, и Ванесса попросила Рудольфа составить для неё программу.
Рудольф последнее время сильно занят и делегирует просьбу Ванессы вам.
Дано $$$s$$$ — количество слоек в заказе. Ванесса и Рудольф хотят знать, за какое минимальное время можно выполнить заказ, используя все или некоторые, имеющиеся в распоряжении, Автоматические Машины Выпечки?
Первая строка входных данных содержит три целых неотрицательных числа, характеризующих АМВ Х: $$$t_0$$$, $$$b$$$, $$$k$$$ ($$$1 \le t_0 \le 10^5$$$, $$$1 \le b \le 10^5$$$, $$$1 \le k \le 10^5$$$).
Вторая строка содержит целое неотрицательное число $$$n$$$ ($$$0 \le n \le 10^5$$$) — число новых машин для выпечки, купленных Ванессой.
Третья строка содержит $$$n$$$ целых неотрицательных чисел $$$t_1$$$, $$$t_2$$$, ..., $$$t_n$$$ ($$$1 \le t_i \le 10^5, 1 \le i \le n$$$) — время, за которое каждая новая машина изготавливает одну слойку. .
Четвертая строка содержит число $$$s$$$ ($$$0 \le s \le 10^9$$$) — количество слоек в заказе.
Выведите одно целое число — минимальное время в минутах, за которое можно выполнить весь заказ.
5 20 30 2 10 12 10
30
5 7 23 0 3
15
В первом примере на выпекание $$$10$$$ слоек на имеющихся в распоряжении Ванессы трех Автоматических Машинах Выпечки потребуется не менее $$$30$$$ минут. Машины для выпечки могут быть использованы, например, следующим образом:
Во втором примере в распоряжении Ванессы имеется только одна машина для выпечки. На изготовлении трех слоек потребуется $$$5 \times 3 = 15$$$ минут.
Рудольф решил немного сменить обстановку и пойти поработать барменом. Естественно он беспокоится о своих клиентах и хочет сделать ассортимент коктейлей разнообразным.
Всего у него на полке имеется $$$n$$$ ингредиентов, расположенных в ряд. Рудольф, применив свои математические способности, рассчитал, что вкусность $$$i$$$-го ингредиента равна $$$a_i$$$. Исходя из этого, он определяет вкусность коктейля как побитовое исключающее ИЛИ вкусностей входящих в него ингредиентов.
Помогите Рудольфу определить, сколько коктейлей различных вкусностей он сможет изготовить. В целях экономии скорости изготовления коктейлей Рудольф решил брать с полки только последовательные ингредиенты.
Первая строка содержит целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Далее следуют описания наборов.
Первая строка набора содержит целое число $$$n$$$ ($$$1 \le n \le 10^4$$$) — количество ингредиентов для коктейлей.
Вторая строка набора содержит $$$n$$$ целых чисел $$$a_i$$$ ($$$1 \le i \le n, 0 \le a_i \lt 2^{10}$$$) — вкусности ингредиентов в том порядке, в котором они расположены на полке.
Гарантируется, что сумма $$$n$$$ по всем наборам не превосходит $$$10^4$$$.
Для каждого набора выведите единственное целое число — количество коктейлей различных вкусностей, которые может изготовить Рудольф из заданных ингредиентов.
250 3 1 10 831 4 8
7 6
В первом тесткейсе мы можем получить $$$7$$$ различных значений вкусностей:
Во втором тесткейсе мы можем получить $$$6$$$ различных значений вкусностей:
Иногда Рудольф и Байер выбираются на природу. Особенно Байеру нравится ловить мячики, которые ему кидает Рудольф, или бегать по большому полю с кроличьими норами. У Рудольфа всегда есть с собой несколько мячиков, которые можно кинуть Байеру. Мячики иногда закатываются в кроличьи норы, причём достаточно глубоко. Тогда Байер с радостью залезает в нору и достаёт их оттуда.
На любимом поле Байера есть $$$n$$$ нор (пронумерованных с 1 до $$$n$$$), соединенных между собой туннелями. Некоторые норы имеют выход на поверхность (назовём такие норы входами/выходами), в другие же норы можно попасть только по туннелям. Из каждой норы можно попасть в любую другую нору и только одним путем. Входами/выходами являются норы, из которых ведёт только один туннель.
Однажды Рудольф обнаружил, что запас мячиков у него в карманах закончился и Байеру пора залезть в нору и достать те мячи, которые закатились внутрь.
Байер любит исследовать систему туннелей и собирать при этом мячики. Он залезает в одну из нор и бежит по переходам к одному из выходов, выбирая на развилках следующий туннель равновероятно. При этом он никогда не возвращается по тому туннелю, в котором уже был (т.е. не возвращается назад), так как это неинтересно. Все мячики, которые встречаются у него на пути, он собирает и несёт к выходу.
Рудольф знает, сколько мячей лежит в каждой из нор. Ему стало интересно, каково математическое ожидание числа мячиков, собранных Байером, если он начнёт путь от норы с номером $$$s$$$.
В первой строке входных данных записаны два целых положительных числа $$$n$$$ и $$$s$$$ ($$$2 \le n \le 10^4$$$, $$$1 \le s \le N$$$) — количество нор и номер норы, с которой начинает свой путь Байер.
Во второй строке содержится $$$n$$$ целых неотрицательных чисел $$$a_1$$$, $$$a_2$$$, $$$\dots$$$, $$$a_n$$$ ($$$0 \le a_i \le 100, 1 \le i \le n$$$), где каждое $$$a_i$$$ равняется числу мячиков, лежащих в норе номер $$$i$$$.
В следующих $$$n - 1$$$ строках описаны туннели, соединяющие норы в формате $$$x_i$$$ $$$y_i$$$ ($$$1 \le x_i, y_i \le n$$$, $$$x_i \neq y_i$$$), где $$$x_i$$$ и $$$y_i$$$ — номера нор, соединенные очередным туннелем. Гарантируется, что можно перейти из каждой норы в любую другую, двигаясь по туннелям.
Выведите одно вещественное число — математическое ожидание числа мячиков, собранных Байером, если он начнёт путь от норы с номером $$$s$$$.
Ответ будет считаться правильным, если его абсолютная или относительная ошибка не превосходит $$$10^{-6}$$$.
Формально, пусть ваш ответ равен $$$a$$$, а ответ жюри равен $$$b$$$. Ваш ответ будет зачтен, если и только если $$$\frac{|a - b|}{\max{(1, |b|)}} \le 10^{-6}$$$.
4 4 0 2 0 0 1 2 2 3 3 4
2.0000000
6 6 0 1 2 2 0 0 1 3 3 5 5 4 5 6 2 4
2.5000000
Иллюстрация первого примера представлена на рисунке ниже.
Байер начинает свой путь в норе номер $$$4$$$, следует по пути $$$4 \rightarrow 3 \rightarrow 2 \rightarrow 1$$$, по пути забирает два мячика из норы номер $$$2$$$ и выходит на поверхность из норы номер $$$1$$$. Число собранных мячиков — $$$2$$$.
Система нор из второго примера представлена на рисунке:
Байер начинает свой путь в норе номер $$$6$$$ и следует либо к выходу $$$1$$$ по пути $$$6~\rightarrow 5~\rightarrow 2~\rightarrow 1$$$ (собрав при этом $$$2$$$ мячика), либо к выходу $$$2$$$ по пути $$$6 \rightarrow 5 \rightarrow 4 \rightarrow 2$$$, собрав три мячика. Оба пути имеют вероятность $$$0.5$$$, следовательно, математическое ожидание числа собранных мячиков равно $$$2 \cdot 0.5 + 3 \cdot 0.5 = 2.5$$$.
Рудольф любит играть в шахматы. Он играет настолько часто, что уже тяжело найти соперника для игры на обычной физической шахматной доске. Поэтому Рудольф играет в шахматы онлайн.
Ход в онлайн-шахматах состоит из трёх этапов:
Рудольф уже выбрал фигуру, и приложение подсветило возможные варианты хода. Однако, мгновением позже из-за ошибки в приложении фигуры на доске перестали отображаться, теперь отображаются только клетки, куда можно сделать ход. Более того, Рудольф забыл, какую фигуру он выбрал. Зная множество подсвеченных клеток, определите, какую фигуру мог выбрать Рудольф. Возможно, в приложении есть и другие ошибки, поэтому множество подсвеченных клеток не соответствует ни одной фигуре (см. пример $$$2$$$).
Необходимо учитывать следующее:
Обратите внимание, что по правилам шахмат фигура не может сделать ход 'на месте', то есть встать на ту клетку, на которой она уже стоит перед началом хода. Таким образом, клетка, на которой сейчас стоит фигура, не должна быть подсвечена при правильной работе приложения.
Входные данные содержат $$$8$$$ строк по $$$8$$$ символов в каждой.
Каждый символ — либо точка ('.'), что соответствует неподсвеченной клетке шахматной доски, либо крест ('X'), что соответствует подсвеченной клетке.
Гарантируется, что хотя бы одна клетка подсвечена приложением.
В первой строке выведите количество возможных фигур, которые соответствуют множеству подсвеченных клеток. В частности, если такое множество клеток не соответствует ни одной фигуре, выведите $$$0$$$.
Во второй строке выведите список фигур, которые могут быть выбраны игроком. Фигуры можно выводить в любом порядке. Используйте следующие названия фигур:
Напоминаем, что Рудольф точно не брал пешку, поэтому не стоит выводить такой вариант, даже если он подходит под множество подсвеченных клеток.
........ ........ ........ ..X..... ..X..... ........ ........ ........
3 king queen rook
........ ........ ........ ..X..... ..X..... ......X. ........ ........
0
........ ........ ........ ..XX.... ..X..... ...X.... ........ ........
2 king queen
........ ........ X....... ........ X....... .X...... ........ ........
1 knight
Это интерактивная задача.
Бернард загадал строку из $$$n$$$ символов, а Рудольф хочет ее отгадать. Бернард заболел и не может говорить, но всё понимает. Кроме того, Бернард может показывать числа при помощи пальцев. Поэтому он не может назвать символы строки, но может указать, сколько различных символов содержит некоторая подстрока загаданной строки.
Таким образом, за один запрос Рудольф может назвать два числа $$$l$$$ и $$$r$$$ ($$$1 \leq l \leq r \leq n$$$), а Бернард покажет, сколько различных символов содержится в позициях от $$$l$$$ до $$$r$$$ загаданной строки. Когда Рудольф посчитает, что знает достаточно информации о загаданной строке, он должен назвать, сколько различных подстрок содержит эта строка.
Помогите Рудольфу правильно посчитать количество различных подстрок не более чем за $$$32768$$$ запросов.
Первая строка содержит одно натуральное число $$$n$$$ ($$$1 \leq n \leq 5000$$$) — длину загаданной строки.
Можно сделать не более $$$32768$$$ запросов о количестве различных символов на подстроке. Каждый запрос должен иметь вид '? l r', где $$$l$$$ и $$$r$$$ — индексы исходной строки, между которыми (включительно) считается количество различных символов. Должно выполняться условие $$$1 \leq l \leq r \leq n$$$.
На каждый такой запрос будет выведено одно число $$$k$$$ — количество различных символов в подстроке, $$$1 \leq k \leq r-l+1$$$.
Ответ должен быть выведен в формате '! m', где $$$m$$$ — количество различных подстрок загаданной строки. Этот ответ не учитывается в общем количестве запросов, то есть его можно вывести даже после $$$32768$$$ запросов, указанных выше.
Гарантируется, что ответы на запросы непротиворечивы, то есть существует хотя бы одна строка, соответствующая всем ответам. Обратите внимание, что Бернард использует английский алфавит, то есть загаданная строка содержит не более $$$26$$$ различных символов.
Интерактор не является адаптивным, то есть загаданная строка не меняется по мере поступления запросов.
5 4 3 1 2
? 1 5 ? 1 3 ? 3 3 ? 4 5 ! 14
В примере Бернард загадал строку 'codec', состоящую из $$$5$$$ символов и содержащую $$$14$$$ различных подстрок.
На первый запрос ответ $$$4$$$, поскольку среди символов строки с номерами от $$$1$$$ до $$$5$$$ только $$$4$$$ различных.
Однажды вечером Рудольф шел по улице и нашел массив длины $$$n$$$, состоящий из $$$0$$$ и $$$1$$$. Придя домой, Рудольф стал развлекаться с массивом, записывая сумму элементов на различных отрезках массива.
На следующий день, пока Рудольф был на работе, Байер нашел этот массив. Как любой уважающий себя пёсик он его съел. Придя домой, Рудольф понял в чем дело и сильно расстроился. Но позже вспомнил, что у него осталось $$$m$$$ записей про отрезки массива вида $$$l, r, s$$$, где $$$l$$$ и $$$r$$$ — границы отрезка, а $$$s$$$ — сумма элементов на нем. Поскольку Рудольф был уставший прошлым вечером, отрезки, на которых он считал сумму, были длиной не более 10.
Рудольф попросил вас помочь ему восстановить любой подходящий массив. Гарантируется, что ответ существует.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Далее следуют описания наборов.
Первая строка набора содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n, m \le 10^4$$$) — размер массива и количество записей, соответственно.
Следующие $$$m$$$ строк содержат по три целых числа $$$l_i, r_i, s_i$$$ ($$$1 \le l_i \le r_i \le n, 0 \le s_i \le r_i - l_i + 1, r_i - l_i \lt 10$$$) — границы $$$i$$$-го отрезка, включительно и сумма элементов на нем.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$10^4$$$. Гарантируется, что сумма $$$m$$$ по всем наборам входных данных не превосходит $$$10^4$$$.
Для каждого набора входных данных выведите в отдельной строке $$$n$$$ чисел ($$$0$$$ или $$$1$$$) через пробел — подходящий массив. Если существует несколько решений, выведите любое.
35 21 4 32 5 33 11 3 221 101 8 45 9 14 13 513 18 416 17 118 20 018 21 14 8 213 15 38 17 7
0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1
Во втором примере также подойдут массивы $$$[1, 0, 1]$$$ и $$$[1, 1, 0]$$$.
Сегодня у Рудольфа плохое настроение, и он хочет мороженого. Он уже устроил переполох на одном из производящих его заводов, но ни один вид не пришёлся ему по вкусу — оно даже близко не напоминает мороженое из Рамени, откуда Рудольф вернулся неделю назад.
Опечаленный, он шёл, рассматривая столбы из еловых брёвен, которые стояли вдоль дороги. Всего Рудольф насчитал $$$n$$$ столбов, которые имели высоты $$$h_1, h_2, \ldots h_n$$$ и стояли в точках с координатами $$$x_1, x_2, \ldots x_n$$$.
Он вспомнил, что жители Рамени рассказали ему, как построить портал в Рамень. Для этого нужно выбрать высокую ель, подрубить её и толкнуть так, чтобы она опиралась на вершину стоящей рядом ели. Тогда образуется арка в форме прямоугольного треугольника (см. рис. для лучшего понимания условия). Рудольф подумал, что елей поблизости нет, но для портала сойдут и столбы (так гласит городская легенда жителей Рамени).
Рудольф может выбрать $$$a$$$-й и $$$b$$$-й столбы и толкнуть $$$a$$$-й в сторону $$$b$$$-го. Если $$$a$$$-й столб упадёт на вершину $$$b$$$-го (другие столбы не являются помехой — ведь Рудольф может заранее срубить их в сторону), то $$$b$$$-й столб, дорога и нижняя часть $$$a$$$-го столба образуют портал в форме прямоугольного треугольника. Помогите Рудольфу выбрать столбы так, чтобы максимизировать площадь портала и привезти из Рамени как можно больше мороженого.
Первая строка содержит целое число $$$n$$$ $$$(2 \le n \le 10^5)$$$ — количество столбов.
Далее следует $$$n$$$ строк — описания столбов.
Строка описания содержит координату $$$x_i$$$ $$$(- 10^9 \le x_i \le 10^9)$$$ и высоту $$$h_i$$$ $$$(1 \le h_i \le 10^9)$$$ $$$i$$$-го столба. Гарантируется, что координаты всех столбов различны.
Выведите два целых числа от $$$1$$$ до $$$n$$$, разделённые пробелом — сначала номер столба, который должен упасть, и затем номер столба, на вершину которого должен упасть столб.
Если существует несколько оптимальных ответов, то выведите любой из них.
Если подходящей пары столбов не существует, вместо каждого числа выведите $$$-1$$$.
4 0 2 1 4 3 3 5 2
2 3
5 2 4 8 1 11 5 9 9 4 5
4 1
2 0 3 3 3
-1 -1
Примеры правильно построенных порталов:
Неправильно построенные порталы: