#include <stdio.h>#define LOCAL#define MAXN 200typedefstructelem{
charmatrix;
introw;
intcol;
}elem;
typedefstructstackelem{
introw;
intcol;
}elemstack;
elemdata[26];
elemstackstack[MAXN];
intmain()
{
intn;
inti;
charstr[2];
charc;
inttop=-1;
elemstacktemp, a, b;
intmulcount;
interror;
#ifdef LOCALfreopen("c://uva_in.txt", "r", stdin);
#endifscanf("%d", &n);
for (i=0; i<n; i++)
{
scanf("%s%d%d", str, &(data[i].row), &(data[i].col));
data[i].matrix=str[0];
}
fgetc(stdin);
mulcount=0;
error=0;
while((c=fgetc(stdin)) !=EOF)
{
if (c=='/n')
{
if (error)
printf("error/n");
elseprintf("%d/n", mulcount);
top=-1;
mulcount=0;
error=0;
}
elseif (c!='('&&c!=')')
{
for (i=0; i<n; i++)
{
if (data[i].matrix==c)
{
temp.row=data[i].row;
temp.col=data[i].col;
break;
}
}
stack[++top] =temp;
} elseif (c==')')
{
b=stack[top--];
a=stack[top--];
if (a.col==b.row)
{
temp.row=a.row;
temp.col=b.col;
stack[++top] =temp;
mulcount+=a.row*a.col*b.col;
} elseerror=1;
}
}
return0;
}