Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Сотрудникам НИИЧАВО повстречалась в лесу группа программистов. Выяснилось, что ровно a процентов из них небалованные, b процентов — добровольцы и c процентов — согласны жить в общежитии. Определите наименьшее возможное число людей в такой группе и найдётся ли гарантированно в ней хотя бы один программист, обладающий всеми тремя необходимыми качествами.
Три строки входных данных содержат три натуральных числа: a, b и c.
Выведите в первой строке одно натуральное число. Во второй строке выведите Yes
или No
— ответы на вопросы задачи.
1 ≤ a, b, c ≤ 99
В первом примере наименьшее возможное количество людей будет равно 20, для этого числа все указанные проценты окажутся целыми числами (4, 5 и 6). Однако, возможно, что нужными качествами будут обладать разные люди.
Во втором примере наименьшее возможное количество людей будет равно 4 и независимо от попыток распределить между ними указанные качества, обязательно найдётся хотя бы один человек, обладающий всеми тремя.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Пусть имеется прямоугольная область, разделенная N × M квадратных ячеек. В некоторых из указанных ячеек были размещены частицы.
За один шаг по времени каждая частица может либо остаться на своем месте, либо переместиться в любую из соседних с ней ячеек.
Требуется посчитать число возможных вариантов перемещения частиц, при которых на L-м шаге все они окажутся в одной ячейке.
Так как полученное число может оказаться слишком большим, в качестве ответа следует вывести остаток от его деления на (232 − 5).
В начале входных данных записана тройка чисел N, M и L.
Далее указано число K, за которым следует набор из 2 × K индексов стартовых ячеек: Xi, Yi.
Здесь полагается, что индексация ячеек начинается с нуля.
Выходные данные должны содержать полученное число.
1 ≤ N ⋅ M ≤ 2 500, 0 ≤ L ≤ 50, 2 ≤ K ≤ 50, 0 ≤ Xi < N, 0 ≤ Yi < M.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Палиндромом называется набор символов, одинаково читающийся в обоих направлениях (как слева направо, так и справа налево).
Составным будем называть палиндром, в котором в качестве символов выступают слова произвольной длины.
Иначе говоря, слова, расположенные симметрично относительно его центра, должны совпадать между собой.
При этом сами слова, из которых составлен такой палиндром, не обязаны являться палиндромами.
Пусть имеется строка S, состоящая из цифр и строчных букв латинского алфавита.
Требуется разбить исходную строку на максимально возможное число слов так,
чтобы полученный набор представлял собой составной палиндром.
Входные данные содержат единственную строку S.
Выходные данные должны содержать последовательность из длин слов,
правые концы которых расположены в левой половине строки.
Если таких нет, выход следует оставить пустым.
1 ≤ |S| ≤ 2 ⋅ 106.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Евгений Татаринов, Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Для проведения олимпиады по математике для 8 − 11 классов выделили несколько кабинетов. В первом кабинете стоит n рядов из парт, в каждом ряду по 3 парты, за одной партой может сидеть ровно один человек.
Организаторы олимпиады хотят посадить учеников за все парты первого кабинета так, что в любом квадрате из парт со стороной 2 будут сидеть ученики попарно разных классов (то есть, в любом квадрате сидит по одному ученику из 8-го, 9-го, 10-го и 11-го классов).
На рисунке вы можете видеть один из вариантов подходящей рассадки при n = 2 (и в красном, и в зелёном квадратах все ученики из разных параллелей).
Сколько существует различных способов рассадки участников, если известно, что общее количество ребят любого класса больше, чем количество парт в первом кабинете?
Единственная строка входных данных содержит натуральное число n.
Выведите одно натуральное число — ответ на вопрос задачи по модулю 109 + 7 (так как число может быть очень большим).
1 ≤ n ≤ 1018
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | A. Usmanov | Ограничение времени: | 1 сек | |
Ввод / вывод: | интерактивный | Ограничение памяти: | 256 Мб |
Если вы уже прочитали условие задачи H. Hard banknote thrower: условие этой задачи отличается лишь в операции, которую делает банкнотомёт. А именно: операция сложения вместо операции поразрядного умножения.
Олег долгое время пользуется услугами банка Деньгофф. Сегодня ему потребовалось метнуть большую сумму денег с карты, но он забыл от неё пин-код. К счастью для компании, банкнотомёты Деньгофф умеют давать подсказки про пин-код.
Во-первых, банкнотомёт сообщает результат сравнения соседних цифр в пин-коде.
Например, для пин-кода 0911
получится <>=
, а для популярного пин-кода 1234
— <<<
.
Во-вторых, можно попробовать ввести в банкнотомёт какой-то пин-код. Если он окажется неправильным, то банкнотомёт выполнит операцию сложения правильного и введенного пин-кодов, и сообщит результат сравнения соседних цифр в получившемся числе. Разумеется, после такой операции количество цифр может быть больше, чем в исходном пин-коде. Программисты банка Деньгофф предусмотрели такое переполнение: если новые разряды появились, то для них также выполнится сравнение соседних цифр. Для безопасности пользователей, после 10 попыток ввода неправильного пин-кода карта блокируется.
Помогите Олегу определить пин-код от карты до того, как она заблокируется.
Данная задача является интерактивной. Ваша программа будет взаимодействовать с программой жюри путем отправки и приема сообщений определенного вида.
Сначала программа жюри отправляет вашей программе целое число N — количество цифр в пин-коде.
Далее, в новой строке отправляется строка из N − 1 символа <
, >
и =
—
сравнение соседних цифр в пин-коде.
После этого ваша программа может делать запросы вида "? X
",
где X — целое число, попытка ввести пин-код, можно выводить без лидирующих нулей.
Если пин-код правильный, то программа жюри отвечает вашей программе строкой "ok
",
после этого ваша программа должна завершиться.
Иначе программа жюри отвечает строкой из минимум N − 1 символа <
, >
и =
—
сравнение соседних цифр результата операции
сложения
правильного и введенного пин-кодов.
Ваша программа может сделать только 9 запросов с неправильным пин-кодом. Если ваша программа превысит допустимое количество запросов, то она получит вердикт "Wrong answer".
Каждый запрос должен быть одиночной строкой заканчивающейся одиночным переводом строки (\n
).
Буфер вывода необходимо сбрасывать после каждой строки:
Язык | C++ | Pascal | Java | Python |
Код | cout.flush() |
flush(output) |
System.out.flush() |
stdout.flush() |
Если ваша программа сделает недопустимый вывод, то она получит вердикт "Presentation error".
Если ваша программа получила от программы жюри строку "-1
", то она должна немедленно завершиться.
Такое возможно, если ваша программа нарушила протокол взаимодействия.
Если ваша программа не завершится, то вердикт может отличаться от описанных выше
(например, может быть вердикт "Runtime error").
2 ≤ N ≤ 18
0 ≤ X < 10N
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Рассмотрим функцию следующего вида: F(X, Y) = AB ⋅ X + CD ⋅ Y.
Требуется найти такие целочисленные A, B, C и D, при которых на заданном наборе точек (Xi, Yi)
указанная функция удовлетворяет заранее известным условиям:
RoundDawn(F(Xi, Yi)) = Zi либо RoundUp(F(Xi, Yi)) = Zi,
где RoundDawn() и RoundUp() — округление в меньшую и большую сторону соответственно.
В начале входных данных указано число N, за которым следует N условий,
каждое из которых записано в следующем виде.
Вначале указывается знак операции: '>' для RoundDawn либо '<' для RoundUp.
Далее следуют три целых числа: Xi, Yi, Zi.
Если задача имеет решение, в выходные данные записывается число 1,
за которым следуют найденные значения A, B, C и D.
Если существует более одного решения,
выводится любое из них.
Если решения не существует, выводится
единственное число 0.
Все входные значения являются целыми десятичными числами.
− 40 ≤ (Xi, Yi, Zi) ≤ 40, 0 < N ≤ 2000
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Usmanov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Петя и его друзья решили поиграть в популярную игру Мафия. Каждый игрок в этой игре получает одну из ролей: шериф, мафиози или мирный гражданин. После раздачи ролей город засыпает, все игроки закрывают глаза, после чего их открывают только мафиози, чтобы познакомиться друг с другом, другие игроки при этом не будут знать наверняка кто есть кто. Игра поделена на раунды, один раунд состоит из дня и ночи. Днем игроки общаются и голосуют за то, кого отправить в тюрьму. Ночью шериф ищет мафию, а мафия кого-то убивает.
Всего на игру собралось N человек. Для такого количества игроков оптимальное распределение ролей следующее: один шериф и M мафиози.
Обычно в партиях Мафии те, кого убивают или сажают в первые раунды, очень грустят, так как они толком не успели поиграть, и теперь должны ждать завершения партии. Петя и его друзья очень дружные, поэтому они решили договориться, что в первые несколько ночей мафия никого не будет убивать, и голосование за посадку в тюрьму проводиться не будет. Так все точно успеют наиграться до того, как начнется основной замес.
Спустя несколько раундов Петя попросил каждого участника назвать M других игроков, тех кто, по их мнению, является мафией. За это время шериф успел проверить всех игроков, так что он точно знает кто мафия, и назовёт именно их. С другой стороны, мафиози не станут помогать другим игрокам, поэтому не будут выдавать друг друга.
Помогите Пете выяснить, можно ли по полученной информации однозначно определить мафию.
В первой строке входных данных записаны целые числа N и M — общее количество игроков и количество мафиози соответственно.
Далее следует N строк, i-я строка содержит M различных целых чисел ai,j — предположения i-о игрока касательно того, кто является мафией.
Гарантируется, что входные данные корректные и соответствуют ситуации описанной в условии.
В единственной строке выведите YES
или NO
—
можно ли однозначно определить игроков с ролью мафиози.
6 ≤ N ≤ 500
1 ≤ M ≤ ⌊ N2⌋
1 ≤ ai,j ≤ N
В первом примере мафией являются игроки 3 и 5.
Во втором примере мафией могут быть пары игроков 1 и 5, 3 и 7, 4 и 8.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Usmanov | Ограничение времени: | 1 сек | |
Ввод / вывод: | интерактивный | Ограничение памяти: | 256 Мб |
Если вы уже прочитали условие задачи E. Easy banknote thrower: условие этой задачи отличается лишь в операции, которую делает банкнотомёт. А именно: операция поразрядного умножения (смотрите Пояснение) вместо операции сложения.
Олег долгое время пользуется услугами банка Деньгофф. Сегодня ему потребовалось метнуть большую сумму денег с карты, но он забыл от неё пин-код. К счастью для компании, банкнотомёты Деньгофф умеют давать подсказки про пин-код.
Во-первых, банкнотомёт сообщает результат сравнения соседних цифр в пин-коде.
Например, для пин-кода 0911
получится <>=
, а для популярного пин-кода 1234
— <<<
.
Во-вторых, можно попробовать ввести в банкнотомёт какой-то пин-код. Если он окажется неправильным, то банкнотомёт выполнит операцию поразрядного умножения правильного и введенного пин-кодов, и сообщит результат сравнения соседних цифр в получившемся числе. Разумеется, после такой операции количество цифр может быть больше, чем в исходном пин-коде. Программисты банка Деньгофф предусмотрели такое переполнение: если новые разряды появились, то для них также выполнится сравнение соседних цифр. Для безопасности пользователей, после 10 попыток ввода неправильного пин-кода карта блокируется.
Помогите Олегу определить пин-код от карты до того, как она заблокируется.
Поразрядным умножением двух чисел называется операция в ходе которой перемножаются цифры стоящие на одних и тех же позициях. То есть происходит перемножение цифр на нулевой позиции, на первой позиции, и т.д. Перенос переполнения в старший разряд выполняется по обычным правилам арифметики.
Более формально, операцию поразрядного умножения можно выразить формулой ∑i = 0 ai * bi * 10i, где ai и bi — цифры на i-й позиции.
Примеры поразрядного умножения представлены на картинке.
Данная задача является интерактивной. Ваша программа будет взаимодействовать с программой жюри путем отправки и приема сообщений определенного вида.
Сначала программа жюри отправляет вашей программе целое число N — количество цифр в пин-коде.
Далее, в новой строке отправляется строка из N − 1 символа <
, >
и =
—
сравнение соседних цифр в пин-коде.
После этого ваша программа может делать запросы вида "? X
",
где X — целое число, попытка ввести пин-код, можно выводить без лидирующих нулей.
Если пин-код правильный, то программа жюри отвечает вашей программе строкой "ok
",
после этого ваша программа должна завершиться.
Иначе программа жюри отвечает строкой из минимум N − 1 символа <
, >
и =
—
сравнение соседних цифр результата операции
поразрядного умножения
правильного и введенного пин-кодов.
Ваша программа может сделать только 9 запросов с неправильным пин-кодом. Если ваша программа превысит допустимое количество запросов, то она получит вердикт "Wrong answer".
Каждый запрос должен быть одиночной строкой заканчивающейся одиночным переводом строки (\n
).
Буфер вывода необходимо сбрасывать после каждой строки:
Язык | C++ | Pascal | Java | Python |
Код | cout.flush() |
flush(output) |
System.out.flush() |
stdout.flush() |
Если ваша программа сделает недопустимый вывод, то она получит вердикт "Presentation error".
Если ваша программа получила от программы жюри строку "-1
", то она должна немедленно завершиться.
Такое возможно, если ваша программа нарушила протокол взаимодействия.
Если ваша программа не завершится, то вердикт может отличаться от описанных выше
(например, может быть вердикт "Runtime error").
2 ≤ N ≤ 18
0 ≤ X < 10N
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | И. Блинов | Ограничение времени: | 2 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Голос исполнителя характеризуется диапазоном нот, которые он может спеть. Этот диапазон называется тесситурой. А песня характеризуется одним числом hi — высотой. Если hi попадает в тесситуру исполнителя, то песня может быть спета.
Паулундра готовится к серии из c концертов, для каждого концерта она хочет подготовить k ещё не спетых песен из n доступных. Изначально Паулундра может петь песни в диапазоне от l до r, но после каждого концерта она совершенствуется, и диапазон расширяется на d, при этом она сама решает, в какую сторону и на сколько расширять тесситуру (расширить можно в одну сторону или сразу в обе, но суммарно не более чем на d). Помогите ей понять, сможет ли она правильно распределить свои усилия и успешно подготовиться ко всем концертам.
Первая строка входных данных содержит пять целых числа l, r, d, c, k. Вторая строка содержит одно число n. Третья строка содержит n целых чисел hi.
Выведите "YES" если все c концертов состоятся и "NO" в противном случае.
1 ≤ n, k ≤ 105
1 ≤ hi, l, r, d ≤ 109
1 ≤ c ≤ 100
l,r ∈ [h1, h2, …, hn]
Все hi различны.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
Автор: | A. Karabanov, A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Требуется найти k-е по порядку q-ичное число (начиная с 1-го), сумма цифр которого равна n, а длина не превосходит l.
Во входных данных записаны четыре целых числа: q, n, l и k.
Выходные данные должны содержать полученное число.
Если такого числа нет, либо оно выходит за пределы допустимого диапазона,
выходные данные следует оставить пустыми.
2 ≤ q ≤ 10, 1 ≤ (n, l) ≤ 4000, 1 ≤ k ≤ 1018
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Если верить современным источникам, знаменитые узоры на зимней одежде впервые появились в норвежском местечке Сетесдаль. Популяризации моды на скандинавские свитера способствовал кинофильм «Серенада солнечной долины». Свитер с оленями главного героя стал востребованным предметом сначала мужского, а потом и женского гардероба. В наши дни свитера с подобным рождественским узором всё чаще можно увидеть на городских улицах.
Скоро Новый Год! А значит — самое время подумать о праздничном наряде.
Тимофей, как истинный знаток моды, собирается связать новогодний свитер собственноручно. Естественно, на нем должен быть изображен олень с красивыми развесистыми рогами.
Тимофей, как истинный программист, решил, что оленьи рога должны представлять собой бинарное дерево c 2n листьями и со смещенными к центру вертикальными линиями длины k.
Поскольку прямо сейчас Тимофей, как истинный вязальщик, занят поиском ниток, спиц и крючков, помогите ему нарисовать оленьи рога с данными параметрами.
Две строки входного файла содержат два натуральных числа n и k.
Выведите требуемое изображение. Для формирования линий используйте символ #
(ASCII-код 35), для фона — символ .
(ASCII-код 46). Ваша программа не должна выводить лишние строки или столбцы, заполненные только символами фона.
1 ≤ n ≤ 8
2 ≤ k ≤ 10
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Рассмотрим конфигурацию n прямых на плоскости. Требуется подсчитать максимальное число треугольных ячеек, образованных в результате разбиения плоскости указанным набором прямых.
В начале входных данных записано натуральное число n, за которым следует ровно n прямых. Каждая прямая задается парой несовпадающих точек: (Axi, Ayi), (Bxi, Byi).
Выходные данные должны содержать число полученных треугольников.
Гарантируется, что никакие две прямые не совпадают между собой.
Все входные значения являются целыми десятичными числами.
− 104 ≤ (Axi, Ayi, Bxi, Byi) ≤ 104, 3 ≤ n ≤ 300
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Евгений Татаринов, Игорь Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Гора представлена двоичной кучей на n вершинах. Также есть число k, которое равно сумме расстояний между всеми парами вершин. Зная k, найдите n.
Двоичной кучей в данной задаче называется неориентированное двоичное дерево, для которого выполнены следующие условия:
К примеру, двоичная куча на 4 вершинах:
Единственная строка входных данных содержит натуральное число k.
Выведите n.
0 ≤ k ≤ 1018
Расстояние между 1-ой и 2-ой вершиной равно 1. Расстояние между 1-ой и 3-ой вершиной равно 1. Расстояние между 1-ой и 4-ой вершиной равно 2. Расстояние между 2-ой и 3-ой вершиной равно 2. Расстояние между 2-ой и 4-ой вершиной равно 1. Расстояние между 3-ой и 4-ой вершиной равно 3. Сумма всех расстояний равна 1 + 1 + 2 + 2 + 1 + 3 = 10.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|