#include #include #include char* strrev(char* str, char* in) { int i; int len = strlen(str); for(i=0; i < len; i++) { in[i] = str[len-i-1]; } in[i+1] = 0; return in; } char* getright(char* str, int index, char * out) { int i = 0, j = 0,k=0; int len = strlen(str); for(i = len-index-1; i >= 0; i--) { if(str[i] == ' ') { break; } j++; } i++; for(k = 0; k < j+1; k++) { out[k] = str[i+k]; } out[k] = 0; if (k>1) if (out[k-1] == ' ') out[k-1] = 0; return out; } int main() { char line[1024]; char slovo[512]; int delkaslova = 0; int delka = 0; long res = 0; long zeros = 1; while(1) { gets(line); if(strlen(line) == 0) break; zeros = 1; res = 0; delka = 0; delkaslova = 0; while (1) { getright(line, delka, slovo); /*printf("%s\n",slovo);*/ delkaslova = strlen(slovo); if (delkaslova == 0) break; delka += delkaslova+1; if(!strcmp(slovo, "negative")) { res *= -1; } if(!strcmp(slovo, "one")) { res += 1 * zeros; } if(!strcmp(slovo, "two")) { res += 2 * zeros; } if(!strcmp(slovo, "three")) { res += 3 * zeros; } if(!strcmp(slovo, "four")) { res += 4 * zeros; } if(!strcmp(slovo, "five")) { res += 5 * zeros; } if(!strcmp(slovo, "six")) { res += 6 * zeros; } if(!strcmp(slovo, "seven")) { res += 7 * zeros; } if(!strcmp(slovo, "eight")) { res += 8 * zeros; } if(!strcmp(slovo, "nine")) { res += 9 * zeros; } if(!strcmp(slovo, "ten")) { res += 10 * zeros; } if(!strcmp(slovo, "eleven")) { res += 11 * zeros; } if(!strcmp(slovo, "twelve")) { res += 12 * zeros; } if(!strcmp(slovo, "thirteen")) { res += 13 * zeros; } if(!strcmp(slovo, "fourteen")) { res += 14 * zeros; } if(!strcmp(slovo, "fifteen")) { res += 15 * zeros; } if(!strcmp(slovo, "sixteen")) { res += 16 * zeros; } if(!strcmp(slovo, "seventeen")) { res += 17 * zeros; } if(!strcmp(slovo, "eighteen")) { res += 18 * zeros; } if(!strcmp(slovo, "nineteen")) { res += 19 * zeros; } if(!strcmp(slovo, "twenty")) { res += 20 * zeros; } if(!strcmp(slovo, "thirty")) { res += 30 * zeros; } if(!strcmp(slovo, "forty")) { res += 40 * zeros; } if(!strcmp(slovo, "fifty")) { res += 50 * zeros; } if(!strcmp(slovo, "sixty")) { res += 60 * zeros; } if(!strcmp(slovo, "seventy")) { res += 70 * zeros; } if(!strcmp(slovo, "eighty")) { res += 80 * zeros; } if(!strcmp(slovo, "ninety")) { res += 90 * zeros; } if(!strcmp(slovo, "hundred")) { if (zeros == 1000) zeros = zeros*100; else if (zeros == 1000000) zeros = zeros*100; else zeros = 100; } if(!strcmp(slovo, "thousand")) { if (zeros==1000000) zeros = 1000*zeros; else zeros = 1000; } if(!strcmp(slovo, "million")) { zeros = 1000000; } /*printf("Res: %ld Z: %ld\n", res, zeros);*/ } printf("%ld\n", res); } return 0; }