Python3: 栈

while True:
    try:
        n,dic,stk,num = int(input()),{},[],0
        for i in range(n):
            key = chr(ord('A')+i)
            dic[key] = list(map(int,input().strip().split()))
        x = input()
        for i in range(len(x)):
            if x[i] != ')':
                stk.append(x[i])
            else:
                C,B = stk.pop(),stk.pop()
                stk.pop()
                num += dic[B][0]*dic[C][1]*dic[B][1]
                dic[B] = [dic[B][0],dic[C][1]]
                stk.append(B)
        print(num)
    except:
        break