Найти тему

Задача 716. Треугольник Максима

На сайте acmp.ru появились 300 новых задач, и сейчас самое время их решить.

Условие задачи с сайта acmp.ru
Условие задачи с сайта acmp.ru

Часто наличие хорошего рисунка помогает решить задачу. Хоть эта задача и лёгкая, но рисунок лишним не будет.

Иллюстрация к решению
Иллюстрация к решению

На самом деле получается всего четыре различных варианта: когда новая нота выше или ниже, и когда она ближе или дальше от предыдущей. Нарисовав это, понимаем, что достаточно находить середину интервала и уточнять ограничения на возможное значение частоты треугольника.

Будем решать на Python, потому что здесь точно не понадобится скорость выполнения и нет смысла усложнять себе работу. Считаем данные и зададим начальные ограничения диапазона частоты треугольника. Они также будут выведены, если Максим не провёл ни одного сравнения.

Считывание и инициализация данных
Считывание и инициализация данных

Далее в цикле считаем все сравнения, которые провёл Максим, вычислим середину интервала и сделаем изменение диапазона частоты, согласно рисункам.

Основной код решения задачи
Основной код решения задачи

Стоит обратить внимание на условие в 7-8 строках. Если не учесть ситуацию, что Максим два раза подряд установил одну и ту же частоту, то решение не будет проходить 21-ый тест. Действительно, в таком случае одна из границ интервала сразу передвинется в эту точку, что скорее всего неверно, поэтому такие измерения следует пропускать.

Предыдущий выпуск: Задача 715. Миша и негатив

Я очень хочу, чтобы мои советы были полезны вам, а для того, чтобы быстрее всех получать новые статьи можно подписаться на мой канал.