Метки показаний по дереву решений
Условие
В доме установлены счётчики электричества. Для каждого показания известны час снятия данных hour и накопленное за интервал потребление usage в ватт-часах.
Готовое дерево решений относит каждое показание к одной из меток: например, normal, attention или overload. Внутренняя вершина дерева проверяет одно из полей показания, а лист содержит итоговую метку.
Путь в дереве определяется точно так: для вершины S feature threshold left right берётся значение v поля feature. Если v <= threshold, следующей вершиной становится left, иначе следующей вершиной становится right. После попадания в лист его метка печатается для данного показания.
При равенстве значения порогу переход выполняется в левую вершину. Округление не применяется, так как ответом является строковая метка. В некоторые ветви дерева может не попасть ни одного показания, и для таких ветвей ничего выводить не требуется.
Формат ввода
В первой строке даны два целых числа n и q — количество вершин дерева и количество показаний.
Следующие n строк описывают вершины с номерами от 1 до n. Корень дерева имеет номер 1.
Внутренняя вершина задаётся строкой:
S feature threshold left right
Здесь feature равно hour или usage, threshold — целый порог, left и right — номера дочерних вершин.
Лист задаётся строкой:
L label
Здесь label — метка, которую возвращает лист.
В следующих q строках даны показания в формате hour usage.
Формат вывода
Выведите q строк. В строке с номером i выведите метку, полученную для показания с номером i.
Ограничения
1 <= n, 1 <= q, n + q <= 2000.
Каждая вершина имеет номер от 1 до n. Дерево корректно: все дочерние вершины существуют, из корня достижим хотя бы один лист, циклов нет.
0 <= hour <= 23.
0 <= usage <= 9999.
Для проверки hour выполняется 0 <= threshold <= 23, для проверки usage выполняется 0 <= threshold <= 9999.
Метка label состоит из строчных латинских букв, её длина от 1 до 20. В показаниях нет пропусков.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами