Universal Cup Judging System

Universal Cup

時間限制: 2 s 記憶體限制: 2048 MB 總分: 100 难度: [顯示] 可 Hack ✓
统计

Маленька Ціанова Рибка дуже любить різні мови. Сьогодні він хоче познайомити вас із кантонською мовою.

Кантонські склади можна записувати латинськими літерами за допомогою романізації Ютпхін (Jyutping)$^\ast$. Він дає вам рядок $s$ і запитує, чи є він записом одного коректного кантонського складу без номера тону.

У цій задачі повні правила задаються наведеною нижче таблицею. Кожен стовпець — це ініціаль, початкова частина складу, а кожен рядок — фіналь, решта складу. Стовпець, позначений символом $\varnothing$, позначає порожню ініціаль, яка не додає жодних літер. Комірка, що містить $1$, означає, що ініціаль і фіналь можна поєднати; комірка, що містить $0$, означає, що не можна. Коректний запис утворюється конкатенацією ініціалі стовпця та фіналі рядка, у комірці на перетині яких стоїть $1$, саме в такому порядку. Жодні інші записи не є коректними.

Фіналь включає голосний звук і будь-який кінцевий приголосний. Фіналі m та ng — це особливі носові звуки, які можуть утворювати склади без голосного; їхні допустимі комбінації також включено до таблиці. Записуються лише літери, показані в таблиці: пробілів, роздільників або номерів тонів немає.

Наприклад, ngaan і zeoi є коректними записами, тоді як chong — ні. Допоможіть Маленькій Ціановій Рибці перевірити його запис.

Фіналь $\varnothing$ b p m f d t n l g k ng h gw kw w z c s j
aa 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
aai 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
aau 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1
aam 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0
aan 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0
aang 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1
aap 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1
aat 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0
aak 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
a 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
ai 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
au 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1
am 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1
an 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ang 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
ap 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1
at 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1
ak 1 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0
e 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1
ei 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0
eu 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0
em 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
en 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eng 0 1 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1
ep 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0
et 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
ek 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0
i 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1
iu 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1
im 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1
in 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1
ing 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1
ip 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1
it 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1
ik 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
o 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
oi 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0
ou 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0
on 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0
ong 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
ot 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0
ok 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
oe 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0
oeng 0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 1
oet 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0
oek 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1
eoi 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1
eon 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1
eot 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0
u 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0
ui 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0
um 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
un 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0
ung 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1
up 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ut 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0
uk 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1
yu 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
yun 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1
yut 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1
m 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
ng 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

$^\ast$Для простоти в цій задачі Маленька Ціанова Рибка прибрав номери тонів зі своїх нотаток.

Таблицю адаптовано зі списку Cantonese Pronunciation List of the Characters for Computers (CC BY 4.0) Лінгвістичного товариства Гонконгу (Linguistic Society of Hong Kong) з доповненнями, описаними у схемі Jyutping та її розширенні 2018 року. Наведені вище комірки визначають записи, що приймаються в цій задачі.

Вхідні дані

Перший рядок містить ціле число $T$ ($1 \le T \le 10^5$) — кількість наборів вхідних даних.

Єдиний рядок кожного набору вхідних даних містить рядок $s$ ($1 \le |s| \le 6$), що складається лише з малих латинських літер (від a до z).

Вихідні дані

Для кожного набору вхідних даних виведіть Yes, якщо $s$ є коректним записом, і No в протилежному випадку.

Приклади

Вхідні дані 1

5
ngaan
zeoi
chong
jaai
pak

Вихідні дані 1

Yes
Yes
No
Yes
No

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.