Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Артём загадал три целых числа и сообщил Евгению их попарные средние арифметические. Евгений без проблем восстановил исходные числа. Попробуйте и вы!
Входные данные содержат три числа: x, y и z. Числа либо целые, либо дробные с дробной частью 0.5. Хотя бы одно из чисел отлично от нуля.
Выведите в порядке неубывания три исходных целых числа (входные данные таковы, что найденные числа окажутся целыми).
− 108 ≤ x, y, z ≤ 108
В примере x = 1.5, y = 2 и z = 3.5. Это попарные средние арифметические для чисел a = 0, b = 3 и c = 4. В самом деле:
a + b2 = 0 + 32 = 1.5 = x;
a + c2 = 0 + 42 = 2 = y;
b + c2 = 3 + 42 = 3.5 = z.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
В харчевне "Три пескаря" за a золотых монет можно получить три корочки хлеба и сдачу, а за b золотых монет — пять корочек хлеба и сдачу. Сколько корочек хлеба можно гарантированно получить за c золотых монет?
Одна золотая монета равна по стоимости 100 серебряным монетам. Никаких других видов монет в стране нет. Одна корочка хлеба имеет стоимость, выражаемую натуральным числом серебряных монет. Получить три корочки хлеба и сдачу за a золотых монет означает, что три корочки хлеба стоят строго меньше, чем a золотых монет, а четыре корочки хлеба уже стоят больше, чем a золотых монет.
Три строки входного файла содержат три натуральных числа a, b и c. Входные данные таковы, что ответ существует.
Выведите одно целое число — ответ на вопрос задачи.
1 ≤ a < b ≤ 109
1 ≤ c ≤ 109
В примере за 8 золотых монет можно получить три корочки хлеба и сдачу, а за 13 золотых монет — пять корочек хлеба и сдачу.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Найдите наименьшее положительное целое число, которое делится на n и начинается с цифр 2021 в десятичной записи.
Входные данные содержат единственное целое число n — делитель искомого числа.
Выведите одно натуральное число — ответ на задачу.
1 ≤ n ≤ 1012
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
В сказке братьев Гримм одним из испытаний для Золушки был эпизод, когда злая мачеха рассыпала крупы в кучу на пол и приказала перебрать их, разложив по тарелочкам. Крупы варьируются в зависимости от версии. В одной сказке Золушка перебирала просо и мак. В другой она раскладывала бобы и чечевицу. В третьей отделяла ячмень от овса. Были и горох с рисом, и гречка с пшеном, и мешки с красной и белой фасолью. Какой из вариантов правдивый — неизвестно, поэтому в этой задаче мачеха сформировала кучу из десятичных цифр и потребовала, чтобы Золушка посчитала количество каждой цифры в куче.
Всего в куче n уровней, на самом верхнем — единственная цифра d, в каждом следующем уровне на одну цифру больше, чем на уровне выше. Для удобства представим кучу (в ней n = 4 и d = 8) так, как указано на рисунке.
Куча цифр сформирована мачехой по определенным правилам. Самое первое число на уровнях, начиная со второго, равно первому числу на уровне выше, увеличенному на 1 и взятому по модулю 10. Например, первое число на втором уровне равно (8 + 1) % 10 = 9. Первое число на третьем уровне равно (9 + 1) % 10 = 0, и так далее.
Остальные цифры в куче формируются следующим образом: берется два числа — левее в том же уровне и на уровне выше над только что взятым числом, складываются и результат берется по модулю 10. Например, второе число на втором уровне равно (9 + 8) % 10 = 7.
Если бы Золушка знала, что такое динамическое программирование, то правила заполнения кучи выглядели бы так:
DP[1, 1] = d;
DP[i, 1] = (DP[i - 1, 1] + 1) % 10;
DP[i, j] = (DP[i, j - 1] + DP[i - 1, j - 1]) % 10.
Ходят слухи, что мачеха способна за секунду определить количество всех цифр в куче и проверить правильность работы Золушки. Вам придется взять на себя роль доброй феи и помочь девушке выполнить это нелегкое задание.
Входные данные содержат два целых числа: n и d.
Выведите десять чисел — количество цифр от 0 до 9 в куче.
2 ≤ n ≤ 105
1 ≤ d ≤ 9
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Начинающий программист Вася разрабатывает собственный векторный графический редактор. Помимо обычных примитивов (наподобие прямоугольников, окружностей, прямых) его редактор также поддерживает работу с объектами сложной формы, для описания которых используются сплайновые кривые.
Каждая такая кривая состоит из нескольких кусков, последовательно идущих друг за другом, каждый из которых задается параметрическим уравнением следующего вида:
Xi(t) = AXi ⋅ t3 + BXi ⋅ t2 + CXi ⋅ t + DXi;
Yi(t) = AYi ⋅ t3 + BYi ⋅ t2 + CYi ⋅ t + DYi,
где t — скалярный параметр, изменяющийся в диапазоне [0, 1].
Для описания сложных фигур Вася использует замкнутые сплайновые кривые. Одна из стоящих перед ним задач — определить для каждой из заданных точек попадание внутрь такой фигуры.
В начале входных данных содержится целое N, за которым следует 8 × N вещественных чисел, задающих коэффициенты соответствующих сплайнов
AXi, BXi, CXi, DXi,
AYi, BYi, CYi, DYi.
Далее записано целое число M, за которым следует 2 × M вещественных чисел, задающих координаты точек (Xj, Yj).
Выходные данные должны содержать последовательность из M целых чисел
(ответов на каждый запрос):
1 — если соответствующая точка лежит внутри контура,
0 — если лежит снаружи.
В пределах заданной точности контур непрерывен и не имеет самопересечений.
Расстояние от каждой из точек до границы контура не меньше 10 − 5.
Контур целиком лежит внутри прямоугольной области [ − 10, 10] × [ − 10, 10].
1 ≤ N ≤ 1000, 1 ≤ M ≤ 105.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Иван Кобец | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Юному программисту Илье подарили на день рождения последовательность чисел ai длиной n. Илья решил выделить из этой последовательности хорошие отрезки. Хорошим отрезком называется последовательность подряд идущих элементов ai, содержащая внутри себя элемент, равный сумме своего первого и последнего элементов. Например, последовательность [1, 2, 5, 4] является хорошей, так как сумма самого левого и самого правого элементов равна 5, а число 5 есть в данной последовательности; последовательность [1, 2, 3, 4] не является хорошей, так как сумма самого левого и самого правого элементов дает нам 5, а числа 5 нет в данной последовательности. Требуется программу, которая посчитает количество хороших отрезков в данной последовательности.
В первой строке содержится целое число n — длина последовательности. Во второй строке содержится n целых чисел ai — элементы последовательности. Все элементы последовательности различны.
Выведите единственное целое число — количество хороших отрезков в последовательности.
1 ≤ n ≤ 103
1 ≤ ai ≤ 105
В первом примере один хорошой отрезок: [3, 7, 5, 4].
Во втором примере два хороших отрезка: [1, 5, 4] и [1, 5, 4, 7, 6].
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Палиндромом называется строка символов, которая одинаково читается в обоих направлениях (слева направо и справа налево).
Пусть имеется произвольная строка S. Рассмотрим лексикографически упорядоченный список всех различных палиндромов, которые могут быть получены путём удаления и перестановки символов в исходной строке.
Из указанного списка требуется исключить палиндромы, лексикографически меньшие заданной строки T.
Если после этого длина списка всё ещё больше n, лишние палиндромы с конца также следует удалить.
Первые две строки входных данных содержат строки S и T, состоящие из цифр и строчных букв латинского алфавита.
За ними следует целое число n.
Выходные данные должны содержать все оставшиеся в списке палиндромы в лексикографическом порядке.
В случае если их число равно нулю, на выходе должна быть пустая строка.
0 < |T| ≤ |S| ≤ 100,
0 < n ≤ 2 ⋅ 104
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Мы уже привыкли к продвинутым алгоритмам автоматической обработки изображений. С их помощью нам ничего не стоит убрать фон с фотографии, замазать морщины и даже сделать совместный коллаж с любой знаменитостью. Но задумывались ли Вы, как работают такие программы? Сложно ли их написать? Вам предлагается простая задача: найти и убрать единственный лишний символ из ASCII-рисунка.
На рисунке размером n × m расположено изображение пустого прямоугольника толщиной в один пиксель и одного лишнего пискеля, обозначаемых символами "#" (ASCII-код 35). Прямоугольник имеет длину и ширину не менее трех пикселей, а его стороны параллельны границам изображения. Фон рисунка заполнен символами "." (ASCII-код 46).
Первая строка входных данных содержит два целых числа: n и m. В следующих n строках расположены строки длиной m, состоящие из символов "#" и ".".
Выведите n строк по m символов — то же самое изображение с удалённым лишним пикселем.
3 ≤ n, m ≤ 100
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | A. Usmanov | Ограничение времени: | 1 сек | |
Ввод / вывод: | интерактивный | Ограничение памяти: | 512 Мб |
Данная задача является интерактивной и предполагает взаимодействие с программой жюри путем отправки и приема сообщений определенного вида.
Жюри загадало секретное строку бит X длиной N.
Ваша программа может делать запросы вида "? M L R
".
Ответ на запрос — результат сравнений в порядке слева-направо и справа-налево двух строк по M бит: начинающейся с позиции L и начинающейся с позиции R.
Биты нумеруются справа налево.
Требуется определить значение X, сделав не более ⌈ N + 12⌉ запросов.
В первой строке входных данных записано целое число N — количество бит в X.
Чтобы сделать запрос, ваша программа должна вывести "? M L R
",
где M — количество бит для сравнения, а L и R — позиции для сравнения.
На каждый запрос программа жюри ответит двумя символами —
результат сравнений слева-направо и справа-налево.
Возможные результаты сравнения: < , > и = .
Запросы должны быть такими, что не будет происходить обращения к битам за пределами X.
Когда ваша программа определила X, она должна вывести "! X
",
где X
— строка бит X.
После вывода ответа программа должна завершиться.
Если ваша программа сделает недопустимый запрос, то она получит вердикт "Presentation error". Если ваша программа превысит допустимое количество запросов, то она получит вердикт "Wrong answer".
Каждый запрос и вывод окончательного результата должен быть одиночной строкой
заканчивающейся одиночным переводом строки (\n
).
Буфер вывода необходимо сбрасывать после каждой строки:
Язык | C++ | Pascal | Java | Python |
Код | cout.flush() |
flush(output) |
System.out.flush() |
stdout.flush() |
1 ≤ N ≤ 60
0 < X < 2N
1 ≤ M ≤ N
0 ≤ L, R < N
L + M, R + M ≤ N
В первом примере загадано число 01101. В первом запросе сравнивались 101 с 011 и 101 с 110, поэтому ответ > < .
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
На доске в кабинете математики было записано натуральное число n. Нигде в записи числа не содержалось нулей. Проходящий мимо Тимофей из озорства k раз поменял местами две соседние цифры. Какое наибольшее число после этого могло получиться?
Входные данные содержат целые числа n и k, по одному с строке.
Выведите одно целое число — ответ на вопрос задачи.
11 ≤ n ≤ 10250
k ≤ 109
В первом примере дано n = 97 и одна перестановка, дающая результат 79.
Во втором примере оптимально переместить тройку на первое место и получить 312.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Антон Карабанов,Игорь Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Группа студентов решила создать стартап для замены QR-кодов на новую улучшенную систему.
Они решили представлять двоичные данные как строку из шаблонов цифр 0 и 1.
Также на рисунке изображено представление двоичной строки 1001
.
Цифры в коде разделяются одним столбиком символов '.', первая и последняя цифра располагается вплотную к краю кода. В случае, если считанное камерой изображение не точно совпадает с шаблонами цифр, количество несовпадающих пикселей называется ошибкой распознавания.
Система должна для данного изображения находить наименьшую возможную ошибку распознавания, которая может получиться при подборе битовой строки, максимально схожей с изображением.
Входные данные содержат в первой строке одно целое число n — ширину изображения. В следующих трёх строках расположено само изображение. Каждый его символ равен либо '#' (ASCII 35), либо символ '.' (ASCII 46).
Выведите одно целое число — наименьшую возможную ошибку распознавания.
2 ≤ n ≤ 100000
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 2 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Два студента готовятся к экзамену, во время которого им будет предложен один из n вопросов (нумерация от 1 до n). Они решили разделить между собой вопросы для подготовки следующим образом:
Первый студент выбирает одно число a от 1 до n и учит a вопросов с номерами a, a + 1, a + 2, ... , a + a − 1. Если какой-то из номеров превышает n, нумерация продолжается с 1. Например, если n = 5 и a = 1, то первый студент будет учить только вопрос с номером 1, при a = 2 он будет учить вопросы с номерами 2 и 3, при a = 4 — вопросы с номерами 4, 5, 1 и 2, при a = 5 — все вопросы.
Второй студент тоже выбирает одно число b ≠ a от 1 до n и учит b вопросов с номерами b, b + 1, b + 2, ... , b + b − 1. Аналогично, если какой-то из номеров превышает n, счет продолжается с номер 1.
По известному количеству билетов n определите, сколько существует различных способов выбрать a и b, так что каждый вопросы экзамена будет подготовлен хотя бы одним из студентов.
Входные данные содержат целое число n.
Выведите целое число — количество способов выбрать a и b.
2 ≤ n ≤ 106
В первом примере на экзамене три билета. Независимо от выбора a и b, студенты подготовятся к ответам на все вопросы.
Во втором примере на экзамене четыре билета. Если один из студентов выберет a = 1, а другой b = 2, ни один из них не подготовит ответ на четвертый вопрос.
Если один из студентов выберет a = 1, а другой b = 3, ни один из них не подготовит ответ на второй вопрос.
В оставшихся случаях все вопросы будут выучены.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|