#include using namespace std; int converttonum(string recenica) { unordered_map br; br["zero"] = 0; br["one"] = 1; br["two"] = 2; br["three"] = 3; br["four"] = 4; br["five"] = 5; br["six"] = 6; br["seven"] = 7; br["eight"] = 8; br["nine"] = 9; br["ten"] = 10; br["eleven"] = 11; br["twelve"] = 12; br["thirteen"] = 13; br["fourteen"] = 14; br["fifteen"] = 15; br["sixteen"] = 16; br["seventeen"] = 17; br["eighteen"] = 18; br["nineteen"] = 19; br["twenty"] = 20; br["thirty"] = 30; br["forty"] = 40; br["fifty"] = 50; br["sixty"] = 60; br["seventy"] = 70; br["eighty"] = 80; br["ninety"] = 90; unordered_map velbr; velbr["hundred"] = 100; velbr["thousand"] = 1000; velbr["million"] = 1000000; velbr["billion"] = 1000000000; string rec = ""; int zbir = 0; int tren = 0; recenica += ' '; for (int i = 0; i < recenica.size(); i++) { char slovo = recenica[i]; if (slovo >= 'A' && slovo <= 'Z') { slovo += 32; } if (slovo == ' ') { if (rec == "END") break; if (br.find(rec) != br.end()) { tren += br[rec]; } else if (rec == "hundred") { tren *= 100; } else if (velbr.find(rec) != velbr.end()) { tren *= velbr[rec]; zbir += tren; tren = 0; } rec = ""; } else { rec += slovo; } } zbir += tren; return zbir; } int main() { freopen("gptS.in", "r", stdin); freopen("gptS.out", "w", stdout); int n; cin >> n; cin.ignore(); for (int i = 0; i < n; i++) { string s; getline(cin, s); cout << converttonum(s) << endl; } return 0; }