Задачи
Арбитраж
Арбитраж
Арбитраж - это использование расхождений в валютных курсах, благодаря которому в результате обмена можно преобразовать одну единицу валюты в более чем одну единицу этой же валюты. Например, пусть \textbf{1} доллар США стоит \textbf{0.5} британских фунтов, \textbf{1} Британский фунт стоит \textbf{10.0 }французских франков, а \textbf{1} французский франк стоит \textbf{0.21} долларов США. Тогда при обмене валюты умный трейдер может за \textbf{1} доллар США приобрести \textbf{0.5 * 10.0 * 0.21 = 1.05} долларов США, получив прибыль в \textbf{5} процентов.
Напишите программу, которая по списку курсов валют определит, возможен ли арбитраж или нет.
\InputFile
Входные данные состоят из одного или нескольких тестов. Первая строка каждого теста содержит количество разных валют \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{30}). Каждая из следующих \textbf{n} строк содержит название валюты. Название не содержит внутри себя пробелов. В следующей строке задается размер \textbf{m} таблицы, следующей далее. Каждая из следующих \textbf{m }строк содержит название \textbf{c_i} исходной валюты, действительное число \textbf{r_ij} задающее обменный курс от \textbf{c_i} к \textbf{c_j} и название \textbf{c_j} валюты, в которую производится обмен. Обмен, не указанный в таблице, считается невозможным.
Тесты разделены друг от друга пустой строкой. Признак конца входных данных - значение \textbf{0} для \textbf{n}.
\OutputFile
Для каждого теста вывести в отдельной строке возможен ли арбитраж в формате "\textbf{Case i: Yes}" или "\textbf{Case i: No}", где \textbf{i} - номер теста.
Входные данные #1
3 USDollar BritishPound FrenchFranc 3 USDollar 0.5 BritishPound BritishPound 10.0 FrenchFranc FrenchFranc 0.21 USDollar 3 USDollar BritishPound FrenchFranc 6 USDollar 0.5 BritishPound USDollar 4.9 FrenchFranc BritishPound 10.0 FrenchFranc BritishPound 1.99 USDollar FrenchFranc 0.09 BritishPound FrenchFranc 0.19 USDollar 0
Выходные данные #1
Case 1: Yes Case 2: No