#include<stdio.h>
int main()
{
int matrix[26][2] = {0};
int link[26][2] = {0};
int n, top = -1, sum = 0;
char c;
scanf("%d\n", &n);
while (n--) {
scanf("%c", &c);
scanf("%d%d\n", &matrix[c-'A'][0], &matrix[c-'A'][1]);
}
while ((c=getchar()) != EOF) {
switch (c) {
case '(' :
break;
case ')' : {
if (link[top][0] == link[top-1][1]) {
sum += link[top-1][0] * link[top][0] * link[top][1];
link[top-1][1] = link[top][1];
top--;
}
else {
printf("error\n");
top = -1;
sum = 0;
// 清除这一行的字符
while (getchar() != '\n')
;
}
break;
}
case '\n' : {
top = -1;
printf("%d\n", sum);
sum = 0;
break;
}
default : {
link[++top][0] = matrix[c-'A'][0];
link[top][1] = matrix[c-'A'][1];
}
}
}
return 0;
}
POJ-2246
最新推荐文章于 2020-07-14 09:36:53 发布