#include<stdio.h>
#include<string.h>
#include<map>
#include<ctype.h>
#define maxn 105
using namespace std;
int num(const char* s,int pos,int len){
int num=0;
int q=0;
int temp;
for(int i=pos;i<len;i++){
if(!isalpha(s[i]))
temp=i;
else
break;
}
for(int i=pos;i<=temp;i++){
q=q*10+s[i]-'0';
}
return q;
}
int main(){
map<char,double> mp;
mp['C']=12.01;
mp['H']=1.008;
mp['O']=16;
mp['N']=14.01;
char s[maxn];
int T;
scanf("%d",&T);
while(T--){
scanf("%s",s);
int n=strlen(s);
double sum=0;
for(int k=0;k<n;k++){
if(isalpha(s[k])){
if(isalpha(s[k+1])&&k+1<n)
sum+=mp[s[k]];
else if(!isalpha(s[k+1])&&k+1<n)
sum+=mp[s[k]]*num(s,k+1,n);
else if(k+1==n)
sum+=mp[s[k]];
}
else
continue;
}
printf("%.3lf\n",sum);
}
return 0;
}
#include<string.h>
#include<map>
#include<ctype.h>
#define maxn 105
using namespace std;
int num(const char* s,int pos,int len){
int num=0;
int q=0;
int temp;
for(int i=pos;i<len;i++){
if(!isalpha(s[i]))
temp=i;
else
break;
}
for(int i=pos;i<=temp;i++){
q=q*10+s[i]-'0';
}
return q;
}
int main(){
map<char,double> mp;
mp['C']=12.01;
mp['H']=1.008;
mp['O']=16;
mp['N']=14.01;
char s[maxn];
int T;
scanf("%d",&T);
while(T--){
scanf("%s",s);
int n=strlen(s);
double sum=0;
for(int k=0;k<n;k++){
if(isalpha(s[k])){
if(isalpha(s[k+1])&&k+1<n)
sum+=mp[s[k]];
else if(!isalpha(s[k+1])&&k+1<n)
sum+=mp[s[k]]*num(s,k+1,n);
else if(k+1==n)
sum+=mp[s[k]];
}
else
continue;
}
printf("%.3lf\n",sum);
}
return 0;
}