- Главная
- Соревнования
- Школьный этап Всероссийской олимпиады школьников по информатике в Пыть-Яхе 9-11 класс
Школьный этап Всероссийской олимпиады школьников по информатике в Пыть-Яхе 9-11 класс
- текущее время:
- Начало:
- окончание: 28.10.2022 14:00:00
Участники
Разбор задач
Задача A. Убить босса
Нужно нанести $$$\lceil \frac{h}{a} \rceil$$$ ударов. Поскольку в языке программирования деление обычно округляет вниз, можно воспользоваться трюком, и вывести $$$(h + a - 1) \slash a$$$. Нетрудно убедиться, что это округление вверх.
$$$\lceil x \rceil$$$ — наименьшее целое число, которое не меньше чем $$$x$$$ (округление вверх).
Задача B. Таблица умножения
Можно было вручную для каждого числа определить ответ, а потом в зависимости от данного числа, его вывести.
Но лучше было написать два вложенных цикла for, которые перебирают числа от 1 до 9, проверить произведение этих чисел на равенство $$$n$$$, и если хоть одна пара нашлась, вывести «Yes».
Задача C. Все на своих местах
Будем последовательно обрабатывать все числа последовательности, и если $$$i$$$-е число не равно $$$i$$$, то есть карточка лежит не на своем месте, сравнивать её значение с текущими минимумом и максимумом.
Задача D. Светофор
Необходимо было с помощью if'ов для каждого состояния светофора вывести следующее. Все состояния, а также какое за каким следует, было описано в условии.
Задача E. Автобусы
Лунтик не сможет сесть в автобус в двух случаях:
- Последний автобус уедет перед Лунтиком;
- Количество автобусов, умноженное на максимальное количество людей в одном из них, меньше общего количества людей, которые сядут в автобус (включая Лунтика).
Также есть два случая, когда Лунтик сможет сесть в автобус:
- $$$ny \le x$$$ — каждый раз, когда автобус приезжает, он уезжает без свободных мест (за время x приходит хотя бы n новых пассажиров). В этом случае Лунтик садится на автобус с номером $$$k = \lceil \frac{t}{ n} \rceil$$$. Раз Лунтик приходит на остановку в момент времени $$$ty$$$, а уезжает в $$$kx$$$, то ответ $$$kx-ty$$$.
- $$$ny > x$$$ — каждый автобус заберет всех, кто в этот момент на остановке. Поскольку между заездом двух отдельных автобусов пришли люди, количество которых меньше $$$n$$$, то после проезда автобуса количество людей на остановке всегда равно 0. Значит нужно посчитать, сколько времени пройдет с момента прихода на остановку Лунтика до прихода очередного автобуса, это число равно $$$x - (ty \% x)$$$ (аккуратно обработать случай, когда $$$ty$$$ кратно $$$x$$$, например, взять по модулю $$$x$$$ еще и ответ).
Процентом обозначается взятие остатка от деления, а $$$\lceil x \rceil$$$ — наименьшее целое число, которое не меньше чем $$$x$$$ (округление вверх).
Задача E. Автобусы
Лунтик не сможет сесть в автобус в двух случаях:
- Последний автобус уедет перед Лунтиком;
- Количество автобусов, умноженное на максимальное количество людей в одном из них, меньше общего количества людей, которые сядут в автобус (включая Лунтика).
Также есть два случая, когда Лунтик сможет сесть в автобус:
- $$$ny \le x$$$ — каждый раз, когда автобус приезжает, он уезжает без свободных мест (за время x приходит хотя бы n новых пассажиров). В этом случае Лунтик садится на автобус с номером $$$k = \lceil \frac{t}{ n} \rceil$$$. Раз Лунтик приходит на остановку в момент времени $$$ty$$$, а уезжает в $$$kx$$$, то ответ $$$kx-ty$$$.
- $$$ny > x$$$ — каждый автобус заберет всех, кто в этот момент на остановке. Поскольку между заездом двух отдельных автобусов пришли люди, количество которых меньше $$$n$$$, то после проезда автобуса количество людей на остановке всегда равно 0. Значит нужно посчитать, сколько времени пройдет с момента прихода на остановку Лунтика до прихода очередного автобуса, это число равно $$$x - (ty \% x)$$$ (аккуратно обработать случай, когда $$$ty$$$ кратно $$$x$$$, например, взять по модулю $$$x$$$ еще и ответ).
Процентом обозначается взятие остатка от деления, а $$$\lceil x \rceil$$$ — наименьшее целое число, которое не меньше чем $$$x$$$ (округление вверх).