전화 은행 시스템이 고객에게 계좌 잔액을 소리로 읽어 준다. 이 시스템이 쓰는 음성 합성 엔진은 숫자를 발음하지 못하므로, 금액을 영어 단어로 모두 풀어 쓴 문장을 미리 받아야 한다.
-$999999999999.99 이상 $999999999999.99 이하의 금액 하나를 영어 단어로 바꾸어라. 아직 조 단위 자산을 가진 고객은 없다.
달러와 센트는 값이 0이어도 항상 적는다. 달러가 0이면 zero dollars를, 센트가 0이면 zero cents를 적는다. 규칙은 다음과 같다.
twenty-one, ninety-nine이다.hundred 뒤에는 항상 and를 적는다. 다만 그 값이 백 단위로 딱 떨어지면 적지 않는다. one hundred thousand와 one hundred and twenty-three thousand를 비교해 보라.and를 적는다. two thousand and forty-six와 two thousand five hundred and fifty-seven을 비교해 보라.dollars를 적는다. 달러 금액이 정확히 1일 때만 dollar를 적는다.and를 적는다.cents를 적는다. 센트 금액이 정확히 1일 때만 cent를 적는다.in debit을, 양수이면 맨 뒤에 in credit을 붙인다.in debit도 in credit도 붙이지 않는다.필요한 단어의 철자는 zero, one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, thirty, forty, fifty, sixty, seventy, eighty, ninety, hundred, thousand, million, billion이 전부다.
첫 줄에 금액 v가 주어진다. 음수 부호(양수면 생략한다), $, 자릿수 구분 기호가 없는 달러 금액, ., 센트를 나타내는 두 자리 숫자 순서로 붙여 쓴다.
달러 금액은 0인 경우를 빼면 맨 앞에 0이 오지 않는다. v는 -999999999999.99 이상 999999999999.99 이하이고, 값이 0이면 음수 부호 없이 $0.00으로 주어진다.
금액을 영어 단어로 바꾸어 한 줄에 출력한다. 단어 사이는 공백 하나로 구분한다.