Арбітраж#6664

Арбітраж

1 секунда
64 мегабайти
Середня

Арбітраж — це використання розбіжностей у валютних курсах, завдяки яким у результаті обміну можна перетворити одну одиницю валюти у більше ніж одну одиницю цієї ж валюти. Наприклад, нехай долар США коштує британських фунтів, британський фунт коштує французьких франків, а французький франк коштує доларів США. Тоді при обміні валюти розумний трейдер може за долар США придбати 0.5 \times 10.0 \times 0.21 = 1.05 доларів США, отримавши прибуток у відсотків.

Ваше завдання — написати програму, яка за списком курсів валют визначить, чи можливий арбітраж.

Вхідні дані

Вхідні дані складаються з одного або декількох тестових випадків. Перший рядок кожного тесту містить ціле число (1 \leq n \leq 30) — кількість різних валют. Кожен з наступних рядків містить назву однієї валюти. Назва не містить пробілів. Наступний рядок містить ціле число — кількість обмінних операцій. Кожен з наступних рядків містить назву c_i початкової валюти, дійсне число r_{ij}, яке задає курс обміну від c_i до c_j, та назву c_j валюти, у яку здійснюється обмін. Обміни, не зазначені у таблиці, вважаються неможливими.

Тестові випадки відокремлені один від одного порожнім рядком. Ознака кінця вхідних даних — рядок, що містить замість .

Вихідні дані

Для кожного тесту вивести в окремому рядку, чи можливий арбітраж, у форматі "Case i: Yes" або "Case i: No", де — номер тесту у вхідних даних.

Приклади

Приклад 1

Loading
Loading