Run ID:158692

提交时间:2026-08-22 16:43:26

#include <iostream> #include <string> #include <map> using namespace std; int main() { map<char, int> m; m['H'] = 1; m['C'] = 12; m['N'] = 14; m['O'] = 16; m['F'] = 19; m['P'] = 31; m['S'] = 32; m['K'] = 39; int n; cin >> n; while (n--) { string s; cin >> s; int total = 0; int len = s.size(); for (int i = 0; i < len; ) { char elem = s[i]; i++; int cnt = 0; // 读取后面连续数字 while (i < len && isdigit(s[i])) { cnt = cnt * 10 + (s[i] - '0'); i++; } if (cnt == 0) cnt = 1; total += m[elem] * cnt; } cout << total << endl; } return 0; }