Files
OI-source/2.1586.cpp
2023-08-03 09:22:52 +08:00

60 lines
670 B
C++

#include<cstdio>
#include<cstring>
int len;
char str[100];
void solve()
{
scanf("%s",str);
len=strlen(str);
char *p=str,t;
int cnt=0;
double sum=0;
while(p<str+len)
{
t=*p++;
cnt=0;
while(*p>='0'&&*p<='9')
{
cnt=cnt*10+*p-'0';
p++;
}
if(cnt==0) cnt=1;
switch(t)
{
case 'C':
sum+=12.01*cnt;
break;
case 'H':
sum+=1.008*cnt;
break;
case 'O':
sum+=16.00*cnt;
break;
case 'N':
sum+=14.01*cnt;
break;
}
}
printf("%.3lf\n",sum);
}
int main()
{
int t;
scanf("%d",&t);
while(t-->0) solve();
return 0;
}
/*
Sample Input
4
C
C6H5OH
NH2CH2COOH
C12H22O11
Sample Output
12.010
94.108
75.070
342.296
*/