import java.util.Scanner;
import java.util.Stack;
public class qingwa {
//利用栈的数据结构来解决
public static void main(String args[]) {
//输入字符数组
Scanner in = new Scanner(System.in);
System.out.println("请输入轮数:");
int N = in.nextInt();
char[] c = new char[N];
System.out.println(" 输入数字C,D,+");
for (int i = 0; i < N; i++) {
c[i] = in.next().charAt(0);
}
//调用处理方法
System.out.print(frogPoints(c, N));
}
private static int frogPoints(char[] c, int N) {
//利用栈的结构存储上一轮的结果 (while循环也可以)
Stack<Integer> stack = new Stack<>();
for (char ch : c) {
switch (ch) {
case 'C': //字符单引号,数字直接写
stack.pop(); //退栈(清空上一轮比赛)
break; //特别要注意break问题
case 'D':
int i = stack.peek() * 2;//栈顶元素的二倍
stack.push(i);
break;
case '+':
int j = stack.peek();//栈顶元素
int m = stack.pop();//出栈
int k = stack.peek();//栈顶元素
stack.push(m); //又放回去
int sum = j + k;
stack.push(sum);
break;
default:
int chh = (int) ch;
stack.push(chh);
break;
}
}
int ss = 0;
for (int i : stack) {
ss += i;
}
return ss;
}
}