С недавнего времени Кейкумусуме начала играть в риичи-маджонг. Несмотря на странные и запутанные правила, последней проблемой осталось быстро определять состояние руки.
В игре каждая кость имеет масть (буквы a, b, c) и номер (число от 1 до 9). Рука состоит из 14 случайно взятых костей и считается победной лишь в том случае, когда содержит 4 тройки и одну пару. Почти победной рука считается в случае, если для победы необходимо заменить ровно одну кость в руке. Если ни одно из ранее описанных состояний не выполняется, рука считается несобранной. При этом любая кость, взятая в пару или тройку, не может входить в любую другую пару или тройку.
Пара — 2 одинаковые кости, например (1a, 1a).
Тройки могут быть двух типов:
- Одинаковые — 3 одинаковые кости, например (1a, 1a, 1a) — корректная одинаковая тройка, а (1a, 1b, 1c) — нет.
- Последовательные — 3 кости одной масти, образующие последовательность с шагом 1, например (1a, 2a, 3a) или (4c, 5c, 6c) — корректная последовательная тройка, а (1a, 2a, 4a) или (1a, 2b, 3c) или (1c, 3c, 5c) — нет.
Упростите ей жизнь и напишите программу, которая будет определять состояние руки за неё.
Исходные данные
В единственной строке через пробел заданы 14 костей, каждая кость состоит из пары символов (число от 1 до 9 и масть a, b или c). При этом гарантируется, что костей каждого типа не более 4 (однако при почти победной руке после замены разрешается иметь 5 костей одного типа).
Результат
Выведите единственную строку — состояние заданной руки, записанное одним из трёх слов: «Tsumo
» (победная), «Tenpai
» (почти победная) или «Noten
» (несобранная).
Примеры
исходные данные | результат |
---|
1a 2a 3a 6a 7a 8a 5b 5b 5b 9c 8c 7c 1c 1c
| Tsumo
|
1a 2a 3a 6a 7a 8a 5b 5b 5b 9c 8c 7c 1c 1b
| Tenpai
|
Замечания
В первом тесте мы можем собрать 3 последовательных тройки (1a, 2a, 3a), (6a, 7a, 8a), (7c, 8c, 9c) и 1 одинаковую тройку (5b, 5b, 5b), а также пару (1c, 1c). В сумме мы получили ровно 4 тройки и одну пару, поэтому рука считается победной.
Во втором примере для победы нам нужно заменить кость 1c на 1b или наоборот.
Автор задачи: Иван Сычёв
Источник задачи: Уральская командная олимпиада по программированию 2020