#include<iostream> #include <stack> #include <vector> using namespace std; int main(){ int res = 0; int n ; cin >> n; // 创建一个存放pair的数组 vector<pair<int, int>> v; pair<int, int> tmpPair; for(int i = 0; i < n; ++i){ cin >> tmpPair.first >> tmpPair.second; v.push_back(tmpPair); } string str ; cin >> str; stack<pair<int, int>> st; for(auto c : str){ // 遇到右括号开始做运算 if( c == ')' ){ pair<int, int> a = st.top(); st.pop(); pair<int, int> b = st.top(); st.pop(); // 累加运算次数 res += b.first * b.second * a.second; st.push(make_pair(b.first, a.second)); }else if(c != '('){ // 向栈中插入数据 st.push(v[c-'A']); } } // 打印输出 cout << res << endl; return 0; }