Поиск

  • Главная
  • Соревнования
  • Школьный этап Всероссийской олимпиады школьников по информатике в Мегионе 9-11 класс

Школьный этап Всероссийской олимпиады школьников по информатике в Мегионе 9-11 класс

  • текущее время:
  • Начало:
  • окончание: 27.10.2022 18:00:00


27 октября 2022

Статус: Закончена


Участники

Разбор задач

Задача 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. Автобусы

Автобусы

Лунтик не сможет сесть в автобус в двух случаях:

  1. Последний автобус уедет перед Лунтиком;
  2. Количество автобусов, умноженное на максимальное количество людей в одном из них, меньше общего количества людей, которые сядут в автобус (включая Лунтика).

Также есть два случая, когда Лунтик сможет сесть в автобус:

  1. $$$ny \le x$$$ — каждый раз, когда автобус приезжает, он уезжает без свободных мест (за время x приходит хотя бы n новых пассажиров). В этом случае Лунтик садится на автобус с номером $$$k = \lceil \frac{t}{ n} \rceil$$$. Раз Лунтик приходит на остановку в момент времени $$$ty$$$, а уезжает в $$$kx$$$, то ответ $$$kx-ty$$$.

  2. $$$ny > x$$$ — каждый автобус заберет всех, кто в этот момент на остановке. Поскольку между заездом двух отдельных автобусов пришли люди, количество которых меньше $$$n$$$, то после проезда автобуса количество людей на остановке всегда равно 0. Значит нужно посчитать, сколько времени пройдет с момента прихода на остановку Лунтика до прихода очередного автобуса, это число равно $$$x - (ty \% x)$$$ (аккуратно обработать случай, когда $$$ty$$$ кратно $$$x$$$, например, взять по модулю $$$x$$$ еще и ответ).

Процентом обозначается взятие остатка от деления, а $$$\lceil x \rceil$$$ — наименьшее целое число, которое не меньше чем $$$x$$$ (округление вверх).

Результаты