#include<stdio.h>
int main()
{
int mass=0,i,k=0;
char c,pre='*';
char ch[102];
int m[200];
int top=0,top1=0,current=0;
scanf("%s",ch);
while(1)
{
c=ch[k];
if(c=='\0' || c=='\n')
break;
if(c=='C')
mass+=12;
else if(c=='H')
mass+=1;
else if(c=='O')
mass+=16;
else if(c=='(')
{
m[top++]=mass;
current=top;
mass=0;
top1++;
}
else if(c==')')
{
if(current==top)
{}
else
{
mass+=m[--top];
}
top1--;
}
else if(isdigit(c))
{
if(pre=='C')
{
mass=mass+(c-49)*12;
}
else if(pre=='O')
{
mass=mass+(c-49)*16;
}
else if(pre=='H')
{
mass=mass+(c-49)*1;
}
else
{
mass*=c-48;
}
}
else
{}
pre=c;
if(top1==0 && pre!='*' && top!=1)
{
for(i=0;i<top;i++)
{
mass+=m[i];
}
top=0;
}
k++;
}
for(i=0;i<top;i++)
{
mass+=m[i];
}
printf("%d\n",mass);
return 0;
}
Can someone please tell me why i'm getting wrong answer...?? thanks a lot in advance...