while True: try: n=int(input()) dic={} for i in range(n): dic[chr(ord('A')+i)]=list(map(int,input().strip().split())) # 用strip()先去掉可能隐藏的末尾空格。再split(),防止map不过去 s=input() # 输入要计算的法则 result=0 stack=[] for j in s: if j != ')': # 不遇到')'就一直压栈 stack.append(j) else: # 直接遇到')',把前两个弹出来计算乘法运算量 C=stack.pop() B=stack.pop() stack.pop() # 弹掉前括号'(' result+=dic[B][0]*dic[B][1]*dic[C][1] dic[B]=[dic[B][0],dic[C][1]] # 把当前乘积的结果存储起来 stack.append(B) # 把当前乘积结果入栈 # 因为有最外圈括号,弹完所有')'即完成整个算式的结果 print(result) except: break