#include #define endl '\n' #define pb push_back using namespace std; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } unordered_map mp; void make_map() { mp["Zero"] = 0; mp["One"] = 1; mp["Two"] = 2; mp["Three"] = 3; mp["Four"] = 4; mp["Five"] = 5; mp["Six"] = 6; mp["Seven"] = 7; mp["Eight"] = 8; mp["Nine"] = 9; mp["Ten"] = 10; mp["Eleven"] = 11; mp["Twelve"] = 12; mp["Thirteen"] = 13; mp["Fourteen"] = 14; mp["Fifteen"] = 15; mp["Sixteen"] = 16; mp["Seventeen"] = 17; mp["Eighteen"] = 18; mp["Nineteen"] = 19; mp["Twenty"] = 20; mp["Thirty"] = 30; mp["Forty"] = 40; mp["Fifty"] = 50; mp["Sixty"] = 60; mp["Seventy"] = 70; mp["Eighty"] = 80; mp["Ninety"] = 90; mp["Hundred"] = 100; mp["Thousand"] = 1000; mp["Million"] = 1000000; mp["Billion"] = 1000000000; } vector < string > g; void solve() { //reverse(g.begin(), g.end()); long long act = 0; long long ans = 0; for (string w: g) { int val = mp[w]; // cout << val << endl; if(val <= 99) { act += val; continue; } act *= val; if (val != 100) { ans += act; act = 0; } } cout << act + ans << endl; } void read() { g.clear(); while(true) { string word; cin >> word; if(word == "END")break; else g.pb(word); } solve(); } int main() { freopen("gptS.in", "r", stdin); freopen("gptS.out", "w", stdout); int t; cin >> t; make_map(); while(t --) { read(); } return 0; }