#include #include using namespace std; #include string num[20] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", }; string num2[8] = { "twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety" } ; string dd[100]; int pos=0; void parse(string s) { unsigned int p=0,n; while(1) { n = s.find(" ",p); dd[pos] = s.substr(p,n-p); //cout << dd[pos]; //cout << dd[x] << endl; pos++; p = n+1; if (n == string::npos) return; } } int bas=1; int final = 1; int p1() { int t; for (t=0;t<20;t++) { if (num[t] == dd[pos]) return t; } for (t=0;t<8;t++) { if (num2[t] == dd[pos]) return (2+t)*10; } if (dd[pos] == "hundred") { bas *= 100; return 0; } if (dd[pos] == "thousand") { bas = 1000; return 0; } if (dd[pos] == "million") { bas = 1000000; return 0; } if (dd[pos] == "negative") { final = -1; return 0; } cout << "chyba" << endl; return -1; } int main() { //parse("ninety nine"); //parse("two hundred ninety nine"); // parse("eight hundred fifteen million nine hundred twenty five thousand fifteen"); string s; while (1) { bas =1; final = 1; pos = 0; getline(cin,s); if (s=="") return 0; parse(s); int c=0; pos--; while (pos >= 0) { c += p1()*bas; pos --; } cout << c*final << endl; } return 0; }