Однажды Максим поспорил, что сможет придумать задачу с самым коротким условием, способную растрогать любого. Он выиграл спор:
«По заданным числам $$$n$$$ и $$$p$$$ посчитайте количество возможных пар ($$$a, b$$$), таких что $$$a + b = n$$$ и $$$-10^{p} \le a, b \le 10^{p}$$$.»
Единственная строка содержит два целых числа $$$n$$$ ($$$-2 \cdot 10^{9} \le n \le 2 \cdot 10^{9}$$$) и $$$p$$$ ($$$1 \le p \le 9$$$).
Выведите одно целое число – ответ на задачу.
7 1
14
-4 1
17
25 1
0
Никита и Максим оценивают сложность задач. Каждая задача характеризуется длиной условия $$$x$$$ и длиной кода-решения $$$y$$$. Никита предполагает, что сложность задачи определяется как $$$x^{y}$$$, а Максим считает, что сложность задачи это $$$y^{x}$$$.
Помогите ребятам понять какое отношение имеют оценки сложности $$$x^{y}$$$ и $$$y^{x}$$$.
Единственная строка содержит два целых положительных числа $$$x$$$ и $$$y$$$ ($$$1 \le x, y \le 10^{9}$$$).
Выведите одно из трех:
3 5
>
7 7
=
Максим большой любитель всевозможных игр. В этот раз он играет в игру под названием «Minecraft».
В этот раз ему пришла отличная идея построить огромную мишень и потренироваться стрельбе из лука. По задумке Максима мишень будет выглядеть как квадрат с четной стороной $$$x$$$ и каждый внутренний слой покрашен или в белый или в красный цвет, при этом цвета должны чередоваться (для лучшего понимания смотрите картинку):
Пример мишени $$$8 \times 8$$$.
Пример мишени $$$4 \times 4$$$. Также Максим хочет сделать эту мишень из шерсти, однако у него не так много шерсти красного цвета, а именно $$$n$$$ блоков. Помогите Максиму выяснить какая максимальная сторона $$$x$$$ может быть у его мишени!
Единственная строка содержит одно целое число $$$n$$$ ($$$4 \le n \le 1000$$$).
Выведите одно целое число $$$x$$$ – ответ на задачу.
5
4
12
6
Маша и Петя любят есть пирожки. Бабушка решила их сегодня обрадовать и испечь им $$$n$$$ пирожков с капустой и с грибами. Бабушка замесила тесто, положила пирожки в духовку и пошла спать. Однако, когда вкусно запахло, внуки не выдержали и решили съесть немного пирожков. Пирожки лежат в духовке в один ряд слева направо. Маша хочет брать каждый третий пирожок, а Петя каждый седьмой.
К примеру, Маша хочет взять пирожок $$$3, 6, 9, 12, 15, 18, 21, 24$$$ и так далее, а Петя $$$7, 14, 21, 28...$$$ Внуки берут пирожки по очереди, начиная слевой стороны духовки. Маша начинает первой брать пирожки. Если один из внуков взял уже пирожок под номером $$$x$$$, то другой берёт следующий. Например, Петя возьмет третий пирожок под номером $$$21$$$. Следовательно, когда Маша будет брать свой седьмой пирожок, она возьмёт пирожок под номером $$$24$$$.
Скажите, сколько пирожков с грибами съест каждый из внуков.
Первая строка содержит количество пирожков $$$n$$$ ($$$1 \le n \le 10^{5}$$$).
В следующей строке задаётся $$$n$$$ значений $$$a_{i}$$$ ($$$0 \le a_{i} \le 1$$$) – если $$$0$$$, то пирожки с капустой, иначе с грибами.
Выведите два числа через пробел - количество пирожков с грибами, которое съест Маша, а затем Петя.
71 1 0 1 0 1 1
1 1
241 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1
5 2
11
0 0
В вашем распоряжении $$$k$$$ серверов, на этих серверах хранится информация, ее можно представить в виде массива из $$$n$$$ элементов. В изначальный момент времени вся информация на всех $$$k$$$ серверах одинаковая, вам она будет дана в виде массива $$$a$$$. Также в некоторые моменты времени к серверам поступают запросы, запросы бывают двух типов:
Вы бы хотели создать такую систему, которая позволит быстро обрабатывать все эти запросы. Но это еще не все, также вы бы хотели настроить синхронизацию между всеми серверами раз в $$$s$$$ секунд, то есть каждые $$$s$$$ секунд серверы обмениваются информацией и обновляются так, что между данными двух различных серверов нет различий. Конфликты, которые возникают при синхронизации, должны устраняться в автоматическом режиме следующим образом: допустим на серверах в позиции $$$i$$$ находятся разные значения, тогда при синхронизации для обновления будет выбрано то значение, которое было позже обновлено, то есть если на сервере $$$x$$$ в $$$i$$$-й позиции значение было изменено в момент времени $$$t_{1}$$$, а на сервере $$$y$$$ в $$$i$$$-й позиции в момент $$$t_{2}$$$ и при этом $$$t_{1} \gt t_{2}$$$, то будет выбрано значение на сервере $$$x$$$.
Сможете ли вы справиться с такой задачей?
Первая строка содержит три целых числа $$$k, n$$$ ($$$1 \le k, n \le 10^{5}$$$) и $$$s$$$ ($$$1 \le s \le 10^{9}$$$) – количество серверов, размер массива данных на каждом сервере и период синхронизации соответственно.
Вторая строка содержит $$$n$$$ целых чисел $$$a_{i}$$$ ($$$-10^{9} \le a_{i} \le 10^{9}$$$) – информацию, которая хранится на каждом сервере в нулевой момент времени.
Третья строка содержит одно целое число $$$q$$$ ($$$1 \le q \le 10^{6}$$$) – количество запросов.
Следующие $$$q$$$ строк содержат запросы, по одному на каждой строке. Запросы даны в следующем формате:
Для каждого запроса, помимо параметров, описанных в условии, также дан момент времени, в который он приходит. Параметры имеют ограничения ($$$1 \le time \le 10^{9}$$$), ($$$1 \le sid \le k$$$), ($$$1 \le pos \le n$$$), ($$$-10^{9} \le val \le 10^{9}$$$).
Обратите внимание, что если какой-либо запрос приходит в момент времени $$$t$$$ и при этом в этот момент должна произойти синхронизация ($$$t \bmod s = 0$$$), то сначала происходит синхронизация серверов, а потом уже системой обрабатывается этот запрос.
Запросы даны в порядке увеличения $$$time$$$.
Гарантируется, что никакие два запроса не имеют одинаковый $$$time$$$.
Для каждого запроса типа «Get» выведите ответ, который даст ваша система.
2 5 10 3 2 2 4 4 5 4 Get 2 3 7 Set 2 3 1 8 Get 1 3 9 Get 2 3 100 Get 1 3
2 2 1 1
5 5 60 0 0 0 0 0 8 1 Get 1 5 2 Set 2 2 7 7 Set 5 2 1 59 Get 2 2 60 Get 2 2 61 Get 3 2 69 Set 4 1 9 120 Get 1 1
0 7 1 1 9
Студенты ВГУ не только участвуют в различных соревнованиях по программированию, но и посещают музеи. В этот раз в очередном городе Никита предложил сходить в музей изобразительных искусств. Из всех представленных картин ему больше всего понравились работы Ивана Шишкина. Вдохновлённый великим русским живописцем, Никита решил нарисовать свой шедевр в виде ASCII рисунка. Для того чтобы ASCII рисунок был шедевром, в нём должно быть следующее:
Правильные рисунки деревьев.
Неправильные рисунки деревьев. ![]() | ![]() |
По заданным $$$n$$$ деревьям скажите, как будет выглядеть шедевр Никиты!
Если существует несколько вариантов ответа, подходящих под все вышеописанные условия, то разрешается вывести любой.
Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 8$$$) – количество деревьев.
Следующие $$$n$$$ строк содержат по два целых числа $$$s_{i}$$$ и $$$t_{i}$$$ ($$$1 \le s_{i}, t_{i} \le 10$$$) – параметры $$$i$$$-го дерева.
Выведите ASCII рисунок.
В выходных данных не должно быть лишних символов, которые не принадлежат рисунку!
3 1 1 2 2 3 3
+-----------+ | + | | +++ | | +++++ * | |+++++++*** | | # | *****| |###| | | | | | | | +-----------+
41 11 11 11 1
+------------+ | + * + * | |+++***+++***| | | | | | | +------------+
Маша и её бабушка играют в кости. Девочка подбрасывает кубик и говорит число, оказавшееся на нем. Бабушка очень стара и плохо видит, но всё слышит. Маша может исказить результат любого броска кости. Например, если выпало на кубиках $$$2$$$, а Маша сказала, что $$$5$$$, то результатом будет $$$5$$$. Однако, если бабушка слышит подряд три шестёрки, то она берёт лупу и проверяет только последний бросок, после этого количество подряд идущих шестерок сбрасывается.
Маша очень любит бабушку и не хочет её расстроить, но при этом мечтает набрать максимальную сумму очков. Помогите Маше набрать максимальную сумму очков так, чтобы бабушка не уличила внучку в обмане.
Первая строка содержит количество бросков $$$n$$$ ($$$1 \le n \le 10^{5}$$$).
В следующей строке задаётся $$$n$$$ значений $$$a_{i}$$$ ($$$1 \le a_{i} \le 6$$$) – реальное число очков на кубике после $$$i$$$-го броска.
Выведите одно число – максимальную сумму очков, которую может набрать Маша.
31 1 6
18
32 3 5
17
Это интерактивная задача.
Вы же любите проходить тесты, так?
Тест представляет собой список из $$$n$$$ вопросов, на каждый вопрос есть два варианта ответа, и ровно один из них верный. После прохождения теста вы получаете оценку, система оценки следующая:
Оценки $$$3, 4, 5$$$ являются удовлетворительными.
Тест можно проходить максимум $$$3$$$ раза.
Пройдите тест на удовлетворительную оценку!
Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 100$$$) – количество вопросов в тесте.
После того, как вы считали $$$n$$$, вы можете начать попытку. Для этого выведите: «Start test» на новой строке.
После того как началась попытка, вам будут подаваться вопросы. Каждый вопрос состоит из трех строк. В первой строке находится описание вопроса, во второй – первый вариант ответа, на третьей – второй вариант ответа. Для каждого вопроса вы должны вывести на новой строке «A», если вы выбрали первый вариант ответа, или «B», если второй.
Обратите внимание, что следующий вопрос вы получите только после того, как выберете вариант для текущего. После того, как вы ответите на $$$n$$$-й вопрос, вам необходимо считать строку – результат за текущую попытку, строка имеет формат «Your result: mark», где mark – ваша оценка. Если эта оценка удовлетворительная, то более ничего делать не нужно, и ваша программа должна завершиться. В противном случае вы можете начать следующую попытку, если еще не превысили лимит.
Обратите внимание, что начать попытку вы можете максимум $$$3$$$ раза. Если же вы превысите лимит попыток, то следующая строка, которую вы считаете, будет «Attempts exceeded». В таком случае ваша программа должна немедленно завершиться. Также, если вы сделаете некорректный выбор или выведете не то, что ожидает система, то в ответ вы получите «Incorrect output», и ваша программа должна завершиться.
Гарантируется, что все тесты состоят только из ASCII символов с кодами от $$$32$$$ до $$$126$$$, а также что длина любой строки не превышает $$$256$$$ символов.
После любого вывода не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
5 1) Cats have nine lives? A) YES B) NO 2) Are moles blind? A) YES B) NO 3) Does a fly agaric kill flies? A) YES B) NO 4) Does an octopus have one heart? A) YES B) NO 5) Can turtles cry? A) YES B) NO Your result: 4
Start test B B A B A
2 How much is 2*2+2? 1. 6 2. 8 The minimum of 0 and 1 is 1. 1 2. 0 Your result: 2 How much is 2*2+2? 1. 6 2. 8 The minimum of 0 and 1 is 1. 1 2. 0 Your result: 5
Start test B A Start test A B
Ввод и вывод для наглядности разделены пустыми строками. Реальный тест не содержит этих пустых строк.
У вас есть число $$$x$$$. Это число слишком большое, вы хотели бы записать его в сокращенной форме. Для однозначности вы решили ввести правила сокращения любого неотрицательного числа следующим образом:
Запишите число в его сокращенной форме!
Единственная строка содержит одно целое число $$$x$$$ ($$$0 \le x \lt 10^{12}$$$).
Выведите одну строку – сокращенную запись числа $$$x$$$.
567
567
1099
1K
9588
9.5K
2000000000
2B
876289
876K
Во втором тесте есть несколько сокращенных форм, имеющих наиболее близкое значение к $$$x$$$: 1.0K и 1K. Однако согласно четвертому пункту из них нам подходит самая короткая, то есть 1K.
Максим большой любитель всевозможных игр. В этот раз он играет в игру под названием «Heroes of might and magic III».
Каждый сценарий в ней играется на определенной карте, которая представляет собой прямоугольник из $$$n \times m$$$ клеток. Каждая клетка имеет свой тип ландшафта, например «трава», «болото», «песок» и т.д. Визуально, некоторые клетки с одинаковым типом ландшафта образуют компоненты связности$$$^{\ast}$$$. Этих компонент может быть много, однако Максиму нравятся сценарии, где на карте есть не более двух типов ландшафтов и суммарное количество компонент связности в точности равно $$$k$$$.
Вы, как самый опытный картостроитель, пообещали придумать карту, которая понравится Максиму. Сможете ли вы сдержать это обещание?
Компонента связности$$$^{\ast}$$$ – это связная область таблицы, состоящая из одного и того же символа, а также для любой пары клеток $$$(x_{1}, y_{1})$$$, $$$(x_{2}, y_{2})$$$, принадлежащих этой области, существует путь из $$$(x_{1}, y_{1})$$$ в $$$(x_{2}, y_{2})$$$$$$^{\ast}$$$, состоящий только из клеток этой связной области.
Путь в таблице из $$$(x_{1}, y_{1})$$$ в $$$(x_{2}, y_{2})$$$$$$^{\ast}$$$ – это последовательность клеток, которая начинается в $$$(x_{1}, y_{1})$$$, заканчивается в $$$(x_{2}, y_{2})$$$ и любые две рядом стоящие клетки в этой последовательности являются соседними по стороне.
Единственная строка содержит три целых числа $$$n$$$, $$$m$$$, $$$k$$$ ($$$1 \le n, m \le 1000$$$, $$$1 \le k \le n \cdot m$$$).
Если такую карту можно создать, то в первой строке выведите «YES» без кавычек и далее выведите саму карту с новой строки. Она должна состоять из символов '0'и '1' и иметь ровно $$$k$$$ компонент связности.
Если невозможно построить такую карту, то выведите «NO» без кавычек.
5 5 5
YES 00001 11111 00000 01001 11101
3 3 6
YES 010 001 010
5 4 19
NO
4 4 11
YES 1010 0010 0101 1010
Вам дана строка $$$s$$$, состоящая из $$$n$$$ маленьких латинских букв. Вы бы хотели найти ее ключевую анаграмму порядка $$$k$$$. Ключевая анаграмма порядка $$$k$$$ – это лексикографически минимальная строка $$$t$$$ длины $$$k$$$, которая получается из некоторой подстроки исходной строки $$$s$$$ путем перестановки букв в ней. Другими словами, ключевая анаграмма порядка $$$k$$$ это лексикографически минимальная анаграмма какой-то подстроки длины $$$k$$$ исходной строки $$$s$$$.
Напоминаем, что строка $$$a$$$ лексикографически меньше строки $$$b$$$, если и только если выполняется один из следующих пунктов:
Первая строка содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 10^{6}$$$) – длина строки и размер необходимой подстроки.
Во второй строке находится $$$s$$$.
Выведите строку $$$t$$$ – ключевую анаграмму порядка $$$k$$$.
10 3teamspirit
aem
16 5gaminggladiators
aadil
Это интерактивная задача.
Мы загадали прямую в виде $$$y = kx + b$$$. Ваша задача отгадать эту прямую.
Вы можете делать запросы, в одном вопросе вы указываете точку ($$$x, y$$$) и получаете в ответ кратчайшее расстояние от точки до прямой.
Сможете ли вы справиться не более чем за $$$5$$$ запросов?
Гарантируется, что ($$$-100 \le k, b \le 100$$$).
Вы можете сразу начать делать запросы. Чтобы это сделать, выведите:
на отдельной строке. После вывода запроса считайте неотрицательное вещественное число $$$d$$$ с точностью до $$$20$$$ знаков – кратчайшее расстояние от данной вами точки до прямой. Если вы сделаете некорректный запрос или превысите установленный лимит в $$$5$$$ запросов, то в ответ вы получите число $$$-1$$$, в таком случае ваша программа должна немедленно завершиться.
Чтобы вывести ответ, выведите
на отдельной строке. Ваш ответ будет считаться правильным, если относительная или абсолютная погрешность коэффициентов $$$k$$$ и $$$b$$$ будет не более $$$10^{-3}$$$.
После любого вывода не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
1.41421356237309504876 0.70710678118654752438
? 0.000 0.000 ? 0.000 1.000 ! 1.0000 2.0001
0.00000000000000000000 0.00000000000000000000 5.00000000000000000000 5.00000000000000000000 2.50000000000000000000
? 0 5 ? 5 5 ? 5 0 ? 0 0 ? 2.5 2.5 ! 0.000000011 5.00000003
Ввод и вывод для наглядности разделены пустыми строками. Реальный тест не содержит этих пустых строк.