Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
В лицее на уроках информатики ответы учеников оцениваются целым числом баллов от 2 до 5. Итоговая оценка по информатике выставляется как среднее арифметическое оценок на всех уроках, округленное до ближайшего целого числа. Если среднее значение находится ровно посередине между двумя целыми числами, то оценка округляется вверх.
Примеры округления оценок приведены в таблице.
Оценки на уроках | Среднее арифметическое | Итоговая оценка |
---|---|---|
2, 3, 5 | 2 + 3 + 53 = 313 | 3 |
3, 3, 4, 4 | 3 + 3 + 4 + 44 = 312 | 4 |
5, 5, 5, 3, 5 | 5 + 5 + 5 + 3 + 55 = 435 | 5 |
Все ученики лицея стремятся получить итоговую оценку по информатике не ниже 4 баллов. К сожалению, один из учеников получил на уроках a двоек, b троек и c четверок. Теперь он планирует получить несколько пятерок, причем хочет, чтобы итоговая оценка была не меньше 4 баллов. Ему надо понять, какое минимальное количество пятерок ему необходимо получить, чтобы добиться своей цели.
Требуется написать программу, которая по заданным целым неотрицательные числам a, b и c определяет минимальное количество пятерок, которое необходимо получить ученику, чтобы его итоговая оценка по информатике была не меньше 4 баллов.
Входные данные содержат три строки. Первая строка содержит целое неотрицательное число a, вторая строка содержит целое неотрицательное число b, третья строка содержит целое неотрицательное число c.
Следует обратить внимание, что входные данные в этой и других задачах не помещаются в стандартный 32-битный тип данных. Необходимо использовать 64-битный тип данных (long long
в С++, int64
в Паскале, long
в Java).
Выходные данные должны содержать одно число: минимальное число пятерок, которое необходимо получить ученику, чтобы итоговая оценка была не меньше 4 баллов.
0 ≤ a, b, c ≤ 1015
a + b + c ≥ 1
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
1 | 13 | 1 ≤ a ≤ 100, b = 0, c = 0 (Ученик получал только двойки) | полная | |
2 | 14 | a = 0, 1 ≤ b ≤ 100, c = 0 (Ученик получал только тройки) | полная | |
3 | 15 | 0 ≤ a, b, c ≤ 100 | 1, 2 | полная |
4 | 28 | 0 ≤ a, b, c ≤ 106 | 1, 2, 3 | полная |
5 | 30 | 0 ≤ a, b, c ≤ 1015 | 1, 2, 3, 4 | полная |
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 1 сек | |
Входной файл: | prizes.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | prizes.out |
Петр участвует в конкурсе, в котором разыгрывается N призов. Призы пронумерованы от 1 до N.
По итогам конкурса участник может набрать от 2 до N баллов. Если участник наберет K баллов, то он получит один из призов с номером от 1 до K.
Перед тем, как участник выберет свой приз, ведущий конкурса удаляет один из призов с номером от 1 до K. Затем участник может выбрать любой приз из оставшихся K − 1.
Список призов стал известен Петру. Он определил для каждого приза его ценность, для i-го приза она задается целым числом ai.
Требуется написать программу, которая по заданным ценностям призов определяет для каждого K от 2 до N, приз с какой максимальной ценностью гарантированно достанется Петру, если он наберет в конкурсе K баллов.
Первая строка входного файла содержит число N. Вторая строка этого файла содержит N целых чисел: a1, a2, …, aN.
Выходной файл должен содержать одну строку, содержащую N − 1 целых чисел: для каждого K от 2 до N должна быть выведена ценность приза, который достанется Петру, если он наберет K баллов.
2 ≤ N ≤ 100000; 1 ≤ ai ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты успешно пройдены.
N ≤ 100
N ≤ 5000
N ≤ 100 000
По запросу сообщается результат окончательной проверки на каждом тесте.
№ | Входной файл (prizes.in ) |
Выходной файл (prizes.out ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
В ряд выписаны натуральные числа от 1 до n и задано натуральное число k.
Выполняется один или несколько шагов по удалению чисел в этом ряду. На очередном шаге оставшиеся числа просматриваются в возрастающем порядке, и каждое k-е число удаляется. Если после очередного шага осталось меньше k чисел, то процесс удаления чисел завершается.
Необходимо определить, на каком шаге будет удалено число n, или выяснить, что оно не будет удалено до завершения процесса.
Например, пусть n = 13, k = 2.
Таким образом, число 13 будет удалено на третьем шаге.
Требуется написать программу, которая по заданным числам n и k определяет, на каком шаге будет удалено число n.
Первая строка входных данных содержит целое число n.
Вторая строка входных данных содержит целое число k.
Требуется вывести одно целое число — номер шага, на котором будет удалено число n, или число 0, если число n не будет удалено.
3 ≤ n ≤ 1018
2 ≤ k ≤ 100, k < n
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке | |
---|---|---|---|---|---|
n | k | ||||
1 | 16 | 3 ≤ n ≤ 1000 | k = 2 | полная | |
2 | 10 | 3 ≤ n ≤ 1018 | k = 2 | 1 | полная |
3 | 14 | 3 ≤ n ≤ 1000 | 2 ≤ k ≤ 100, k < n | 1 | полная |
4 | 20 | 3 ≤ n ≤ 106 | 2 ≤ k ≤ 100, k < n | 1, 3 | полная |
5 | 40 | 3 ≤ n ≤ 1018 | 2 ≤ k ≤ 100, k < n | 1 — 4 | полная |
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | cities.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | cities.out |
Юный программист решил придумать собственную игру. Игра происходит на поле размером N×N клеток, в некоторых клетках которого расположены города (каждый город занимает одну клетку; в каждой клетке может располагаться не более одного города). Всего должно быть чётное количество городов.
Изначально про каждую клетку игрового поля известно, расположен ли в ней город или нет. Чтобы начать игру, необходимо разделить игровое поле на два государства так, чтобы в каждом государстве было поровну клеток-городов.
Граница между государствами должна проходить по границам клеток таким образом, чтобы из любой клетки каждого государства существовал путь по клеткам этого же государства в любую другую его клетку (из клетки можно перейти в соседнюю, если они имеют общую сторону). Каждая клетка игрового поля должна принадлежать только одному из двух государств, при этом государства не обязаны состоять из одинакового количества клеток.
Требуется написать программу, которая с учетом сказанного разделит клетки заданного игрового поля между двумя государствами.
Правильные решения для тестов, в которых всего два города, будут оцениваться из 40 баллов.
1 ≤ N ≤ 50
№ | Входной файл (cities.in ) |
Выходной файл (cities.out ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | delivery.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | delivery.out |
Группа программистов регионального сортировочного центра работает над автоматизацией управления доставкой почты.
Посылки принимаются в клиентских почтовых пунктах. Почтовый пункт принимает посылки, вес каждой из которых составляет целое число килограммов. Минимальный вес посылки равен 1 кг, а максимальный вес — k кг. Принятые посылки помещаются в специальный пакет.
Если после приема очередной посылки суммарный вес посылок в пакете больше или равен x кг, то пакет доставляется в муниципальный почтовый центр, где пакет с посылками перемещается в специальный контейнер.
Если после доставки очередного пакета суммарный вес посылок в контейнере больше или равен y кг, то контейнер перевозится в региональный сортировочный центр, откуда посылки уже доставляются получателям.
Суммарный вес посылок в контейнере при его перевозке может различаться в зависимости от массы принятых посылок. Необходимо выяснить, каким может быть минимальный суммарный вес посылок в контейнере при перевозке его из муниципального почтового центра в региональный сортировочный центр.
Требуется написать программу, которая по заданным значениям k — максимального веса посылки, x — необходимого веса пакета для его отправки в муниципальный почтовый центр, и y — необходимого веса контейнера для его отправки в региональный сортировочный центр, определяет минимальный вес контейнера при его перевозке.
Входной файл содержит три целых положительных числа, по одному на строке. Первая строка содержит число k. Вторая строка содержит число x. Третья строка содержит число y.
Требуется вывести одно целое число — минимальный возможный вес контейнера при перевозке.
1 ≤ k, x, y ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | |
---|---|---|---|---|
k | x, y | |||
1 | 21 | k = 1 | 1 ≤ x, y ≤ 100 | |
2 | 18 | k = 2 | 1 ≤ x, y ≤ 100 | |
3 | 21 | 1 ≤ k ≤ 100 | 1 ≤ x, y ≤ 100 | 1, 2 |
4 | 17 | 1 ≤ k ≤ 40000 | 1 ≤ x, y ≤ 40000 | 1, 2, 3 |
5 | 23 | 1 ≤ k ≤ 109 | 1 ≤ x, y ≤ 109 | 1, 2, 3, 4 |
По запросу сообщается результат окончательной проверки на каждом тесте.
В приведенном примере принимаются посылки весом 1 и 2 кг. При накоплении посылок с суммарным весом хотя бы в 7 кг пакет доставляется из клиентского почтового пункта в муниципальный почтовый центр. При накоплении посылок с суммарным весом хотя бы в 20 кг контейнер перевозится из муниципального почтового центра в региональный сортировочный центр.
Минимальный возможный вес контейнера в данном примере составляет 21 кг и достигается, например, следующим образом: в муниципальный почтовый центр последовательно доставляется 3 пакета по 7 кг каждый. Пакет весом 7 кг может получиться, например, после приема семи посылок по 1 кг.
№ | Входной файл (delivery.in ) |
Выходной файл (delivery.out ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 1 сек | |
Входной файл: | circle.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | circle.out |
В городе, в котором живут друзья Андрей и Борис, метро состоит из единственной кольцевой линии, вдоль которой на равном расстоянии друг от друга расположены n станций, пронумерованных от 1 до n. Участок линии метро между двумя соседними станциями называется перегоном.
Поезда по кольцевой линии двигаются как по часовой стрелке, так и против часовой стрелки, поэтому чтобы добраться от одной станции до другой, пассажир может выбрать то направление, в котором требуется проехать меньше перегонов. Минимальное число перегонов, которое необходимо проехать, чтобы добраться от одной станции до другой, назовем расстоянием между станциями.
Друзья заметили, что выполняется следующее условие: если загадать некоторую станцию X и выписать для нее два числа: Da — расстояние от станции, на которой живет Андрей, до станции X и Db — расстояние от станции, на которой живет Борис, до станции X, то полученная пара чисел [Da, Db] будет однозначно задавать станцию X.
Например, если n = 4, Андрей живет на станции 1, а Борис живет на станции 2, то станция 1 задается парой [0, 1], станция 2 — парой [1, 0], станция 3 — парой [2, 1] и станция 4 — парой [1, 2].
Их одноклассник Сергей живет в соседнем городе и не знает, на каких станциях живут Андрей и Борис. Чтобы найти друзей, он заинтересовался, сколько существует вариантов пар станций A, B, таких что если Андрей живет на станции A, а Борис — на станции B, то выполняется описанное выше условие.
Требуется написать программу, которая по числу станций n на кольцевой линии определяет искомое количество вариантов.
В первом примере подходят следующие варианты:
В этой задаче три подзадачи. Баллы за подзадачу начисляются только в случае, если все тесты для данной подзадачи успешно пройдены.
По запросу сообщается результат окончательной проверки на каждом тесте.
Первая строка входного файла содержит одно целое число n.
Выходной файл должен содержать одно число — искомое количество вариантов.
3 ≤ n ≤ 40 000;
№ | Входной файл (circle.in ) |
Выходной файл (circle.out ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Гребенюк Н.С., русский фольклор | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Встретил крестьянин чёрта, и тот говорит ему: «Видишь мост через эту реку? Стоит тебе только перейти через этот мост — у тебя будет втрое больше денег, чем есть. Перейдёшь назад, опять станет втрое больше, чем было. И так каждый раз, как ты будешь переходить через мост».
— Ой ли? — говорит крестьянин.
— Верное слово! — уверяет чёрт. — Только чур, уговор! За то, что я тебе утраиваю деньги, ты, каждый раз перейдя через мост, будешь отдавать мне по X копеек. Иначе не согласен.
— Ну, что же, это не беда! — говорит крестьянин. — Раз деньги будут утраиваться, так отчего же тебе X копеек каждый раз не дать?
Перешёл крестьянин через мост, посчитал деньги — и вправду, стало втрое больше, чем было. Отсчитал X копеек, бросил чёрту, перешёл снова.. После N-го перехода по мосту отсчитал крестьянин в N-й раз X копеек, бросил чёрту и понял, что не осталось у него ни копейки.
Сколько копеек было у крестьянина изначально?
Требуется написать программу, которая по количеству копеек, взятых чёртом за один переход по мосту, и количеству переходов определит изначальное количество копеек у крестьянина.
В первой строке ввода содержится целое число X — количество копеек, которые крестьянин будет отдавать чёрту.
Во второй строке содержится целое число N — сколько раз крестьянин смог пройти по мосту, прежде чем у него закончились копейки.
Выведите единственное целое число K — изначальное количество копеек у крестьянина.
1 ≤ X ≤ 109
1 ≤ N ≤ 18
Баллы начисляются пропорционально количеству пройденных тестов.
По запросу сообщается количество набранных баллов.
В первом примере у крестьянина изначально было 5 копеек. После перехода по мосту копеек стало 15 и крестьянину пришлось их все отдать чёрту.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | cond.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | cond.out |
При реализации проекта «Умная школа» было решено в каждый учебный класс выбранной для этого школы установить по кондиционеру нового поколения для автоматического охлаждения и вентиляции воздуха. По проекту в каждом классе должен быть установлен только один кондиционер и мощность кондиционера должна быть достаточной для размеров класса. Чем больше класс, тем мощнее должен быть кондиционер.
Все классы школы пронумерованы последовательно от 1 до n. Известно, что для каждого класса с номером i, требуется ровно один кондиционер, мощность которого больше или равна ai ватт.
Администрации школы предоставили список из m различных моделей кондиционеров, которые можно закупить. Для каждой модели кондиционера известна его мощность и стоимость. Требуется написать программу, которая определит, за какую минимальную суммарную стоимость кондиционеров можно оснастить все классы школы.
В первом примере нужно купить один единственно возможный кондиционер за 1000 рублей.
Во втором примере оптимально будет установить в первом и втором классах кондиционеры четвертого типа, а в третьем классе — кондиционер третьего типа. Суммарная стоимость этих кондиционеров будет составлять 13 рублей (3 + 3 + 7).
Частичные решения для n, m ≤ 1000 будут оцениваться из 50 баллов.
Первая строка входного файла содержит одно целое число n — количество классов в школе.
Вторая строка содержит n целых чисел ai — минимальная мощность кондиционера в ваттах, который можно установить в классе с номером i.
Третья строка содержит одно целое число m — количество предложенных моделей кондиционеров.
Далее, в каждой из m строк содержится пара целых чисел bj и cj — мощность в ваттах j-й модели кондиционера и его цена в рублях соответственно.
Выходной файл должен содержать одно число — минимальную суммарную стоимость кондиционеров в рублях. Гарантируется, что хотя бы один корректный выбор кондиционеров существует, и во всех классах можно установить подходящий кондиционер.
1 ≤ n ≤ 50 000;
1 ≤ ai ≤ 1000;
1 ≤ m ≤ 50 000
1 ≤ bj ≤ 1000, 1 ≤ cj ≤ 1000;
№ | Входной файл (cond.in ) |
Выходной файл (cond.out ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Усманов, Иллюстратор: А. Логутова | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Куст трёхцветника в начале своего роста выглядит, как три ветки, направленные в разные стороны:
В начале очередного цикла цветения каждая ветка пускает два отростка в разные стороны. При этом, ветка продолжает свой рост. Отростки являются ветками, из которых в начале следующего цикла также начнут появляться новые отростки. Каждая ветка даёт отростки ровно один раз.
После первого и второго циклов цветения трёхцветник примет следующий вид:
Юному садоводу стало интересно узнать количество веток у куста трёхцветника после N циклов цветения.
Требуется написать программу, которая считывает количество циклов цветения, и вычисляет количество веток.
Первая строка содержит одно целое число N — количество циклов цветения.
В единственной строке выведите ответ на задачу.
1 ≤ N ≤ 40
Баллы начисляются пропорционально количеству пройденных тестов.
По запросу сообщается количество набранных баллов.
Тесты | Баллы |
---|---|
1-20 | По 2 балла за тест |
21-40 | По 3 балла за тест |
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 512 Мб | |
Выходной файл: | output.txt |
Заданы три числа: a, b, c. Необходимо выяснить, существуют ли такие числа x и y, что:
Входной файл содержит целые числа a b c.
Если искомые числа существуют, вывести в первую строку выходного файла слово YES, а во вторую — числа x y, разделённые пробелом. В противном случае вывести слово NO.
1 < a, b, c < 109
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|