Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
В лицее на уроках информатики ответы учеников оцениваются целым числом баллов от 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 | |||
Максимальный балл: | 100 |
Петр участвует в конкурсе, в котором разыгрывается 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 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
В ряд выписаны натуральные числа от 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 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | delivery.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | delivery.out | |||
Максимальный балл: | 100 |
Группа программистов регионального сортировочного центра работает над автоматизацией управления доставкой почты.
Посылки принимаются в клиентских почтовых пунктах. Почтовый пункт принимает посылки, вес каждой из которых составляет целое число килограммов. Минимальный вес посылки равен 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 сек | |
Входной файл: | building.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | building.out | |||
Максимальный балл: | 100 |
Новое здание кампуса Университета Байтбурга имеет n этажей, пронумерованных снизу вверх от 1 до n. Комнаты студентов расположены в нескольких подъездах.
В каждом подъезде на этажах, номер которых кратен числу k, расположено по x комнат, а на остальных этажах расположено по y комнат.
Комнаты внутри каждого подъезда пронумерованы последовательными натуральными числами. Номера комнат на первом этаже имеют наименьшие значения в этом подъезде, затем следуют номера комнат на втором этаже, и так далее. Комнаты в первом подъезде пронумерованы, начиная с 1, в каждом следующем подъезде нумерация комнат начинается с числа, следующего после максимального номера комнаты в предыдущем подъезде.
На рис.1 показаны номера комнат в здании с n=7 этажами, 3 подъездами, и параметрами k = 3, x = 2, y = 3.
Подъезд 1 | Подъезд 2 | Подъезд 3 | |
7 этаж | 17, 18, 19 | 36, 37, 38 | 55, 56, 57 |
6 этаж | 15, 16 | 34, 35 | 53, 54 |
5 этаж | 12, 13, 14 | 31, 32, 33 | 50, 51, 52 |
4 этаж | 9, 10, 11 | 28, 29, 30 | 47, 48, 49 |
3 этаж | 7, 8 | 26, 27 | 45, 46 |
2 этаж | 4, 5, 6 | 23, 24, 25 | 42, 43, 44 |
1 этаж | 1, 2, 3 | 20, 21, 22 | 39, 40, 41 |
Для организации расселения студентов администрация кампуса должна по номеру комнаты оперативно определять этаж, на котором она находится.
Требуется написать программу, которая по заданным числам n, k, x и y, а также по номерам комнат, определяет для каждой комнаты, на каком этаже она находится.
Первая строка входного файла содержит натуральные числа n, k, x и y. Соседние числа разделены ровно одним пробелом.
Вторая строка входного файла содержит натуральное число q — количество номеров комнат, для которых требуется определить этаж.
Третья строка содержит q целых чисел a1, a2, ..., aq — номера комнат. Можно считать, что в здании так много подъездов, что все комнаты с заданными номерами существуют.
Требуется вывести q чисел, по одному на строке. Для каждого номера комнаты во входном файле требуется вывести номер этажа, на котором она находится.
1 ≤ n ≤ 109, 1 ≤ x, y ≤ 109, 1 ≤ q ≤ 1000, 1 ≤ ai ≤ 1018
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | |
---|---|---|---|---|
n, x, y | q, ai | |||
1 | 31 | 1 ≤ n ≤ 10, 1 ≤ x, y ≤ 10 | q = 1, 1 ≤ ai ≤ 100 | |
2 | 19 | 1 ≤ n ≤ 107, 1 ≤ x, y ≤ 109 | q = 1, 1 ≤ ai ≤ 107 | 1 |
3 | 16 | 1 ≤ n ≤ 109, 1 ≤ x, y ≤ 109, x = y | 1 ≤ q ≤ 1000, 1 ≤ ai ≤ 1018 | |
4 | 34 | 1 ≤ n ≤ 109, 1 ≤ x, y ≤ 109 | 1 ≤ q ≤ 1000, 1 ≤ ai ≤ 1018 | 1,2,3 |
По запросу сообщается результат окончательной проверки на каждом тесте.
№ | Входной файл (building.in ) |
Выходной файл (building.out ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 1 сек | |
Входной файл: | circle.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | circle.out | |||
Максимальный балл: | 100 |
В городе, в котором живут друзья Андрей и Борис, метро состоит из единственной кольцевой линии, вдоль которой на равном расстоянии друг от друга расположены 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 сек | |
Входной файл: | hall.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | hall.out | |||
Максимальный балл: | 100 |
Для проведения церемонии открытия олимпиады по информатике организаторы осуществляют поиск подходящего зала. Зал должен иметь форму прямоугольника, длина каждой из сторон которого является целым положительным числом.
Чтобы все участники церемонии поместились в зале, и при этом он не выглядел слишком пустым, площадь зала должна находиться в пределах от A до B квадратных метров, включительно.
Чтобы разместить на стенах зала плакаты, рассказывающие об успехах школьников на олимпиадах, но при этом не создать ощущения, что успехов слишком мало, периметр зала должен находиться в пределах от C до D метров, включительно.
Прежде чем сделать окончательный выбор, организаторы олимпиады решили просмотреть по одному залу каждого подходящего размера. Залы с размерами Y × Z и Z × Y считаются одинаковыми. Чтобы понять необходимый объем работ по просмотру залов организаторы задались вопросом, сколько различных залов удовлетворяют приведенным выше ограничениям.
Требуется написать программу, которая по заданным A, B, C и D определяет количество различных залов, площадь которых находится в пределах от A до B, а периметр — от C до D, включительно.
В примере ограничениям удовлетворяют залы следующих размеров: 1 × 2, 1 × 3, 2 × 2.
1 ≤ A ≤ B ≤ 1000, 4 ≤ C ≤ D ≤ 1000.
Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
1 ≤ A ≤ B ≤ 109, 4 ≤ C ≤ D ≤ 109.
В этой подзадаче 25 тестов, каждый тест оценивается в 2 балла. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте.
Входной файл содержит четыре разделенных пробелами целых числа: A, B, C и D.
Выходной файл должен содержать одно число — искомое количество залов.
1 ≤ A ≤ B ≤ 109, 4 ≤ C ≤ D ≤ 109
№ | Входной файл (hall.in ) |
Выходной файл (hall.out ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | lights.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | lights.out | |||
Максимальный балл: | 100 |
По территории компьютерного лагеря проложен маршрут для поездок на электрокарах. Поскольку на электрокаре можно добраться до ИКТ-центра, то школьник Пахом решил воспользоваться им. Следуя по маршруту, электрокар проехал с постоянной скоростью один за другим два светофора с зеленым светом. Пахому известно, что оба светофора находятся на расстоянии x метров друг от друга и переключаются абсолютно синхронно: зеленый свет горит a минут, потом включается красный свет и горит в течение b минут, после чего светофор переключается опять на зеленый свет и он горит также в течение a минут, и так далее. Переключений на желтый свет у светофоров нет. Скорость движения электрокара по маршруту не превышает 1000 м/мин. Электрокар может проехать на светофоре в тот момент, когда светофор горит зелёным светом или переключается с одного света на другой.
Приехав в ИКТ-центр, Пахом заинтересовался, с какой максимальной постоянной скоростью он мог ехать на электрокаре между двумя светофорами.
Требуется написать программу, которая позволит Пахому выяснить это.
Правильные решения для тестов, в которых ответ является целочисленным, будут оцениваться из 50 баллов.
Несмотря на выделение отдельной группы тестов для целочисленных ответов, на окончательную проверку будут приниматься только решения, правильно работающие для всех тестов из условия задачи.
Первая строка входного файла содержит три целых числа: a, b и x.
Выходной файл должен содержать одно число — максимальную возможную скорость электрокара между двумя светофорами. Ответ должен отличаться от правильного не более чем на 10−9.
1 ≤ a ≤ 100, 1 ≤ b ≤ 100, 1 ≤ x ≤ 100 000;
№ | Входной файл (lights.in ) |
Выходной файл (lights.out ) |
---|---|---|
1 |
|
|
2 |
|
|