import java.util.Scanner;
import java.util.Stack;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) { // 注意 while 处理多个 case0.
int n = in.nextInt();
int [][] arr = new int[n][2];
for(int i=0;i<n;i++){
arr[i][0] = in.nextInt();
arr[i][1] = in.nextInt();
}
String type = in.next();
System.out.println(getCount(n,arr,type));
}
}
private static int getCount(int i,int[][] b,String type){
// System.out.println(i+"===="+b.length+"===="+type.length());
int sum = 0;
char [] cs = type.toCharArray();
Stack<Integer> st = new Stack<Integer>();
for(int j=type.length()-1,k=i-1;j>=0;j--){
if(cs[j]!='(' && cs[j]!=')'){
st.push(b[k][1]);
st.push(b[k][0]);
//System.out.println(b[k][1]+"====="+cs[j]+"========"+b[k][0]);
k--;
}else if(cs[j]=='('){
//从右向遍历遇到左括号,出栈,计算后把新矩阵入栈,其实可以可以从左到右遇到右括号的话,出栈计算
int a0=st.pop(),a1=st.pop(),a2=st.pop(),a3=st.pop();
sum += a0*a1*a3;
//System.out.println(a0+"*"+a1+"*"+a3);
st.push(a3);
st.push(a0);
}
}
return sum;
}
}
}

京公网安备 11010502036488号