Ngày xửa ngày xưa ở một vùng đất xa xôi, chỉ có học sinh toán sinh sống, Iva và Vedran đang thảo luận về những câu tự giải thích. Một phần của những câu này chính xác là một số và nó bằng tổng số chữ cái trong câu. Một số ví dụ như: “This sentence has thirtyone letters.”, “Blah blah seventeen”..
Cậu bé Jurica tình cờ nghe được cuộc trò chuyện của bạn bè và quyết định gây ấn tượng với họ bằng số lượng câu tự giải thích mà cậu thuộc lòng. Anh ta vội vã trở về nhà và viết một chương trình sẽ cho anh ta biết con số tối thiểu mà anh ta có thể đặt vào bên trong để câu đó hợp lệ. Thật không may, máy tính của anh ấy bị hỏng và bây giờ anh ấy cần sự giúp đỡ của bạn. Viết chương trình để giúp Jurica!
Dạng của câu là: word1 word2 word3 …~$~ word_n-1 word_n. Ký tự ~$~ đại diện cho vị trí cần đặt số. Ví dụ: dạng của câu “this sentence has thirtyone letters” sẽ là “this sentence has ~$~ letters”
Các quy tắc áp dụng cho việc viết số như sau:
- Số từ 1 đến 10 được viết như sau: “one”, “two”, “three”, “four”, “five”, “six”, “seven”, “eight”, “nine”, “ten”.
- Các số từ 11 đến 19 được viết như sau: “eleven”, “twelve”, “thirteen”, “fourteen”, “fifteen”, “sixteen”, “seventeen”, “eighteen”, “nineteen”
- Các số còn lại có hai chữ số được viết theo cách đặt tên chữ số hàng chục và thêm vào đó tên chữ số còn lại khi bỏ chữ số hàng chục. Đặc biệt, nếu bằng cách loại bỏ chữ số hàng chục mà chúng ta vẫn bằng 0 thì chúng ta không thêm gì vào nó
- Cách số hàng chục: “twenty”, “thirty”, “forty”, “fifty”, “sixty”, “seventy”, “eighty”, “ninety”.
- Số có ba chữ số được viết theo cách đặt tên số hàng trăm và cộng với số của số có hai chữ số còn lại. Đặc biệt, nếu bằng cách loại bỏ chữ số hàng trăm mà chúng ta vẫn bằng 0 thì chúng ta không thêm gì vào đó.
- Các số hàng trăm được viết như sau: “onehundred”, “twohundred”, “threehundred”, “fourhundred”, “fivehundred”, “sixhundred”, “sevenhundred”, “eighthundred”, “ninehundred”
- Các quy tắc áp dụng cho các số có nhiều hơn ba chữ số là không phù hợp vì dữ liệu đầu vào sẽ luôn sao cho dữ liệu đầu ra nhỏ hơn một nghìn
Ví dụ cho một vài số:
- 68 = “sixty” + “eight” = “sixtyeight”
- 319 = “threehundred” + “nineteen” = “threehundrednineteen”
- 530 = “fivehundred” + “thirty” = “fivehundredthirty”
- 971 = “ninehundred” + “seventy” + “one” = “ninehundredseventyone”
Input
- Dòng đầu tiên chứa số nguyên ~N~ ~(1 \le N \le 20)~, số từ trong câu.
- Mỗi ~N~ dòng tiếp theo chứa một từ không dài hơn 50 chữ cái viết thường trong bảng chữ cái tiếng Anh hoặc ký tự ~$~ (không có từ nào là tên của một số).
- Ký tự ~$~ sẽ xuất hiện đúng một lần.
Output
- Trong các bài thi chiếm 40% tổng số điểm thì số yêu cầu cho câu sẽ nhỏ hơn hoặc bằng 50.
Sample Input 1
5
this
sentence
has
$
Letters
Sample Output 1
this sentence has thirtyone letters
Sample Input 2
7
$
is
the
number
of
letters
here
Sample Output 2
thirty is the number of letters here
Sample Input 3
5
the
letters
are
$
Potato
Sample Output 3
the letters are twentynine potato
Làm rõ ví dụ thứ hai: Câu được chia thành hai dòng vì thiếu khoảng trống trong bảng. Tổng số chữ cái trong câu là 6+2+3+6+2+7+4 = 30
Làm rõ ví dụ thứ ba: Như bạn có thể thấy, câu này sai ngữ pháp. Tuy nhiên, Jurica không quan tâm đến điều đó, vì anh là nhà toán học chứ không phải nhà ngôn ngữ học.
Bình luận