1 #include <iostream>
2 #include <stdlib.h>
3 #include <string>
4 #include <vector>
5 #include <algorithm>
6 #include <string.h>
7 #include <stack>
8 #include <unordered_map>
9 #include <math.h>
10 #include <iomanip>
11
12 using namespace std;
13
14 vector<double> molar2MassList {12.01,1.008,16.00,14.01};
15 enum molarList {C,H,O,N};
16
17 int main()
18 {
19 int T;
20 cin >> T;
21 while(T --)
22 {
23 string input;
24 cin >> input;
25 double result = 0;
26 for(int i = 0; i < input.size(); i ++)
27 {
28 enum molarList state;
29 double num = 0;
30 int digit = 0;
31 if(input[i]=='C')
32 {
33 state = C;
34 result += molar2MassList[state];
35 }
36 else if(input[i]=='H')
37 {
38 state = H;
39 result += molar2MassList[state];
40 }
41 else if(input[i]=='O')
42 {
43 state = O;
44 result += molar2MassList[state];
45 }
46 else if(input[i]=='N')
47 {
48 state = N;
49 result += molar2MassList[state];
50 }
51 else
52 {
53 while(isdigit(input[i]))
54 {
55 num = pow(10,digit++) * num + (input[i++]-'0');
56 }
57 result += (num-1)*molar2MassList[state];
58 i --;
59 }
60 }
61 cout << fixed << setprecision(3) << result << endl;
62 }
63 return 0;
64 }