30059 - 套利

通过次数

1

提交次数

1

时间限制 : 1 秒
内存限制 : 128 MB

套利是指利用货币兑换率之间的差异,把某种货币的一个单位兑换成多于一个单位的同种货币。举个例子:假设 1 美元可以兑换 0.5 英镑,1 英镑可以兑换 10.0 法郎,而 1 法郎又可以兑换 0.21 美元。那么,通过一连串的货币兑换,精明的交易者可以从 1 美元出发,最终得到 0.5 \times 10.0 \times 0.21 = 1.05 美元,也就是赚取 5\% 的利润。

你的任务是编写一个程序,读入一组货币兑换率,并判断是否存在套利的可能。

输入

输入文件包含一个或多个测试用例。每个测试用例的第一行包含一个整数 n1 \le n \le 30),表示不同货币的数量。

接下来的 n 行每行包含一种货币的名称,名称中不会出现空格。

下一行包含一个整数 m,表示后续兑换表的长度。

最后的 m 行中,每行依次包含源货币名称 c_i、一个实数

r_{ij} 和目标货币名称 c_j,其中

r_{ij} 表示从 c_i 兑换到 c_j 时的汇率。兑换表中没有列出的兑换均视为不可能进行。

测试用例之间由一个空行分隔。当读入的 n0 时,输入结束。

输出

对于每个测试用例,输出一行,说明是否存在套利,格式分别为 Case case: YesCase case: No

样例

输入

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

输出

Case 1: Yes
Case 2: No