#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
//#define max(x,y) (((int)((x)<(y)) * (y)) + ((int)((y)<=(x)) * (x)))
struct stack
{
char ar[410];
int top;
};
int pop(struct stack *s);
void push(struct stack *s,char temp);
long int mass=0;
int main()
{
struct stack
*s
=(struct stack
*)malloc(sizeof(struct stack
)); int t,n,i,cmass;
i=0;
s->top=-1;
char str[410];
while(str[i]!='\0')
{
if(str[i]!=')')
push(s,str[i]);
else
{
cmass=pop(s);
if((s
->top
!=-1 && (isdigit(str
[i
+1]) && cmass
!=0))) {
mass=mass+(cmass*((str[i+1]-'0')-1));
i++;
}
else if(isdigit(str
[i
+1]) && cmass
==0) {
mass=mass*(str[i+1]-'0');
i++;
}
else if((s
->top
==-1 && (isdigit(str
[i
+1]) && cmass
!=0))) {
mass=mass*(str[i+1]-'0');
i++;
}
}
i++;
}
char temp;
int flag=0;
int val;
cmass=0;
while(s->top!=-1)
{
temp=s->ar[s->top];
{
flag=1;
val=temp-'0';
}
else if(temp=='C' && flag==1)
{
cmass=cmass+(12*(val));
flag=0;
}
else if(temp=='C')
cmass=cmass+12;
else if(temp=='O' && flag==1)
{
cmass=cmass+(16*(val));
flag=0;
}
else if(temp=='H' && flag==1)
{
cmass=cmass+(1*(val));
flag=0;
}
else if(temp=='O')
cmass=cmass+16;
else if(temp=='H')
cmass=cmass+1;
s->top--;
}
mass=mass+cmass;
return 0;
}
void push(struct stack *s,char temp)
{
s->ar[++s->top]=temp;
}
int pop(struct stack *s)
{
char temp;
int flag=0;
int val;
int cmass=0;
while(s->top!=-1 && s->ar[s->top]!='(')
{
temp=s->ar[s->top];
{
flag=1;
val=temp-'0';
}
else if(temp=='C' && flag==1)
{
cmass=cmass+(12*(val));
flag=0;
}
else if(temp=='C')
cmass=cmass+12;
else if(temp=='O' && flag==1)
{
cmass=cmass+(16*(val));
flag=0;
}
else if(temp=='H' && flag==1)
{
cmass=cmass+(1*(val));
flag=0;
}
else if(temp=='O')
cmass=cmass+16;
else if(temp=='H')
cmass=cmass+1;
s->top--;
}
if(s->ar[s->top]=='(')
s->top--;
mass=mass+cmass;
return cmass;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHN0cmluZy5oPgojaW5jbHVkZTxjdHlwZS5oPgovLyNkZWZpbmUgbWF4KHgseSkgICgoKGludCkoKHgpPCh5KSkgKiAoeSkpICsgKChpbnQpKCh5KTw9KHgpKSAqICh4KSkpCnN0cnVjdCBzdGFjawp7CiAgY2hhciBhcls0MTBdOwogIGludCB0b3A7Cn07CmludCBwb3Aoc3RydWN0IHN0YWNrICpzKTsKdm9pZCBwdXNoKHN0cnVjdCBzdGFjayAqcyxjaGFyIHRlbXApOwpsb25nIGludCBtYXNzPTA7CmludCBtYWluKCkKewogIHN0cnVjdCBzdGFjayAqcz0oc3RydWN0IHN0YWNrKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBzdGFjaykpOwogIGludCB0LG4saSxjbWFzczsKICAgIGk9MDsKICAgIHMtPnRvcD0tMTsKICAgIGNoYXIgc3RyWzQxMF07CiAgICBnZXRzKHN0cik7CiAgICB3aGlsZShzdHJbaV0hPSdcMCcpCiAgICB7CiAgICAgIGlmKHN0cltpXSE9JyknKQogICAgICBwdXNoKHMsc3RyW2ldKTsKICAgICAgZWxzZQogICAgICB7CiAgICAgICAgY21hc3M9cG9wKHMpOwogICAgICAgIGlmKChzLT50b3AhPS0xICYmIChpc2RpZ2l0KHN0cltpKzFdKSAmJiBjbWFzcyE9MCkpKQogICAgICAgIHsKICAgICAgICAgIG1hc3M9bWFzcysoY21hc3MqKChzdHJbaSsxXS0nMCcpLTEpKTsKICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihpc2RpZ2l0KHN0cltpKzFdKSAmJiBjbWFzcz09MCkKICAgICAgICB7CiAgICAgICAgICBtYXNzPW1hc3MqKHN0cltpKzFdLScwJyk7CiAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoKHMtPnRvcD09LTEgJiYgKGlzZGlnaXQoc3RyW2krMV0pICYmIGNtYXNzIT0wKSkpCiAgICAgICAgewogICAgICAgICAgbWFzcz1tYXNzKihzdHJbaSsxXS0nMCcpOwogICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgfQogICAgICBpKys7CiAgfQogIGNoYXIgdGVtcDsKICBpbnQgZmxhZz0wOwogIGludCB2YWw7CiAgY21hc3M9MDsKICB3aGlsZShzLT50b3AhPS0xKQogIHsKCiAgICB0ZW1wPXMtPmFyW3MtPnRvcF07CiAgICBpZihpc2RpZ2l0KHRlbXApKQogICAgewogICAgZmxhZz0xOwogICAgdmFsPXRlbXAtJzAnOwogICAgfQogICAgZWxzZSBpZih0ZW1wPT0nQycgJiYgZmxhZz09MSkKICAgIHsKICAgICAgY21hc3M9Y21hc3MrKDEyKih2YWwpKTsKICAgICAgZmxhZz0wOwogICAgfQogICAgZWxzZSBpZih0ZW1wPT0nQycpCiAgICAgIGNtYXNzPWNtYXNzKzEyOwogICAgICBlbHNlIGlmKHRlbXA9PSdPJyAmJiBmbGFnPT0xKQogICAgICB7CiAgICAgICAgY21hc3M9Y21hc3MrKDE2Kih2YWwpKTsKICAgICAgICBmbGFnPTA7CiAgICAgIH0KICAgICAgZWxzZSBpZih0ZW1wPT0nSCcgJiYgZmxhZz09MSkKICAgICAgewogICAgICAgIGNtYXNzPWNtYXNzKygxKih2YWwpKTsKICAgICAgICBmbGFnPTA7CiAgICAgIH0KICAgICAgZWxzZSBpZih0ZW1wPT0nTycpCiAgICAgICAgY21hc3M9Y21hc3MrMTY7CiAgICAgICAgZWxzZSBpZih0ZW1wPT0nSCcpCiAgICAgICAgICBjbWFzcz1jbWFzcysxOwogICAgcy0+dG9wLS07CiAgfQogIG1hc3M9bWFzcytjbWFzczsKICBwcmludGYoIiVsZFxuIixtYXNzKTsKICByZXR1cm4gMDsKfQp2b2lkIHB1c2goc3RydWN0IHN0YWNrICpzLGNoYXIgdGVtcCkKewogIHMtPmFyWysrcy0+dG9wXT10ZW1wOwp9CmludCBwb3Aoc3RydWN0IHN0YWNrICpzKQp7CiAgY2hhciB0ZW1wOwogIGludCBmbGFnPTA7CiAgaW50IHZhbDsKICBpbnQgY21hc3M9MDsKICB3aGlsZShzLT50b3AhPS0xICYmIHMtPmFyW3MtPnRvcF0hPScoJykKICB7CiAgICB0ZW1wPXMtPmFyW3MtPnRvcF07CiAgICBpZihpc2RpZ2l0KHRlbXApKQogICAgewogICAgZmxhZz0xOwogICAgdmFsPXRlbXAtJzAnOwogICAgfQogICAgZWxzZSBpZih0ZW1wPT0nQycgJiYgZmxhZz09MSkKICAgIHsKICAgICAgY21hc3M9Y21hc3MrKDEyKih2YWwpKTsKICAgICAgZmxhZz0wOwogICAgfQogICAgZWxzZSBpZih0ZW1wPT0nQycpCiAgICAgIGNtYXNzPWNtYXNzKzEyOwogICAgICBlbHNlIGlmKHRlbXA9PSdPJyAmJiBmbGFnPT0xKQogICAgICB7CiAgICAgICAgY21hc3M9Y21hc3MrKDE2Kih2YWwpKTsKICAgICAgICBmbGFnPTA7CiAgICAgIH0KICAgICAgZWxzZSBpZih0ZW1wPT0nSCcgJiYgZmxhZz09MSkKICAgICAgewogICAgICAgIGNtYXNzPWNtYXNzKygxKih2YWwpKTsKICAgICAgICBmbGFnPTA7CiAgICAgIH0KICAgICAgZWxzZSBpZih0ZW1wPT0nTycpCiAgICAgICAgY21hc3M9Y21hc3MrMTY7CiAgICAgICAgZWxzZSBpZih0ZW1wPT0nSCcpCiAgICAgICAgICBjbWFzcz1jbWFzcysxOwogICAgcy0+dG9wLS07CiAgfQogIGlmKHMtPmFyW3MtPnRvcF09PScoJykKICBzLT50b3AtLTsKICBtYXNzPW1hc3MrY21hc3M7CiAgcmV0dXJuIGNtYXNzOwp9Cg==