Problem 1022. -- Crack

1022: Crack

Time Limit: 1 Sec  Memory Limit: 29 MB
Submit: 1  Solved: 1
[Submit][Status][Web Board]

Description

你是一名军情局的高级技术人员,是网络方面的专家。然而因为一次意外的Hacker事件,你的真实身份竟然被注销了!你的档案里取而代之的是这样的记载:重罪杀人犯,全球一级网络通缉犯。你顿时意识到,自己被hack了。于是你匿藏身份,在某天夜里悄悄潜入军情局内部,探查那天Hacker事件的详细情况。
你吃惊的发现,军情局里有内鬼!然而你却找不到军情局篡改自己身份的原因。你进一步追踪,到关键时刻,要输入登录密码。擅长破译的你用电脑从登录密码界面扫描出了几段诡异的字符串。
你惊奇的发现,这些字符串好像是表达式!!于是你大胆的猜想,如果求出这些表达式的值,并把值顺次输入,是否就是密码了?可是你发现有些表达式里还混有奇怪的由26个英文字母组成的字符串,如果不找到这些字符串所代表的数字,那么是无法求出表达式的值的。
你觉得这些字符串是如此的眼熟,突然你恍然大悟,这些字符串貌似正是the Lord of the Rings里各个登场人物名字的颠倒!!于是你赶紧拿来the Lord of the Rings这本书,翻查附录。因为你猜想,这些字符串背后所隐藏的数字肯定就是人物的编号了。
一切准备工作就绪,你的任务就只剩下求出这些表达式的值了。

Input

第一行仅有一个整数T(1<= T <= 10),表示有T组测试数据。
每组数据的第一行是表达式。表达式由加、减、乘、除、括号这些运算符,和数字,还有由26个英文字母组成的字符串组成,不含空格等其余字符。表达式的长度不超过50。
表达式里有可能含有负数,除法按整除计算。
第二行是表达式里所含字符串的个数n(1<= n <= 10)。
接下来的n行每行以“字符串 = 数字”的格式给出每个字符串所代表的数字。一个字符串不会出现两次代表数字的给定,字符串区分大小写。

Output

对于第k组测试数据,第一行输出“Scenario #k:”,第二行输出表达式的值。

Sample Input

2
-3+(5-2)*(-3)/3
0
(A+(B-C)*D)/B
4
A = 4
B = 3
C = -3
D = 0

Sample Output

Scenario #1:
-6
Scenario #2:
1


HINT

Source

[Submit][Status]