/ 基础 / 题库 /

REČENICE

REČENICE

时间限制:1秒  内存限制:256M


题目描述

很久以前,在一个只有数学学生居住的遥远国度里,Iva 和 Vedran 正在讨论一种特殊的句子。这些句子中正好有一个单词表示一个数字,并且这个数字等于句子中字母的总数。例如 This sentence has thirtyone
letters.
Blah Blah seventeen

Jurica 无意中听到了朋友们的谈话,决定用他背诵的大量特殊的句子给他们留下深刻印象。他急忙回家,写了一个程序,给定一个句子,求出使得句子变得特殊的能放进去的最小数字。

不幸的是,他的电脑坏了,现在他需要你的帮助。写一个程序来帮助 Jurica!

以下是一些补充说明:

  • 句子的形式是:\(\textit{word}_1~\textit{word}_2~\textit{word}_3~\cdots~\textit{word}_{n-1}~\textit{word}_n\)。这 \(n\) 个单词中恰好有一个 $,表示需要填入的表示一个数字的单词。例如,this sentence has thirtyone letters 将变为 this sentence has $ letters
  • 用来表示数字的单词遵循如下规则:
    • 对于所有 \(1\sim 19\) 的整数,表示它们的单词从小到大依次为 onetwothreefourfivesixseveneightnineteneleventwelvethirteenfourteenfifteensixteenseventeeneighteennineteen
    • 对于所有 \(20\sim 90\) 的整十数,表示它们的单词从小到大依次为 twentythirtyfortyfiftysixtyseventyeightyninety
    • 对于所有 \(100\sim 900\) 的整百数,表示它们的单词从小到大依次为 onehundredtwohundredthreehundredfourhundredfivehundredsixhundredsevenhundredeighthundredninehundred
    • 对于其它所有的两位数,先在开头放入表示不超过该数的最大的整十数的单词,再在后面拼接表示该两位数的个位数的单词。例如,表示整数 \(68\) 的单词为 sixtyeight
    • 对于其它所有的三位数,先在开头放入表示不超过该数的最大的整百数的单词,再在后面拼接表示其后两位数的单词(按照前面的规则)。例如,表示整数 \(319,530,971\) 的单词分别为 threehundrednineteenfivehundredthirtyninehundredseventyone

输入格式

第一行输入一个整数 \(n\),表示句子中的单词个数。

随后 \(n\) 行,每行一个字符串,表示句子中的所有单词。保证 $ 在其中恰好出现一次。

输出格式

输出一行 \(n\) 个字符串,表示将 $ 替换为使得句子特殊的表示最小数字的单词后的句子。

输入输出样例 #1

输入 #1

5
this
sentence
has
$
letters

输出 #1

this sentence has thirtyone letters

输入输出样例 #2

输入 #2

7
$
is
the
number
of
letters
here

输出 #2

thirty is the number of letters here

输入输出样例 #3

输入 #3

5
the
letters
are
$
potato

输出 #3

the letters are twentynine potato

说明/提示

【样例 2 解释】

$ 填入表示整数 \(30\) 的单词 thirty,此时所有单词的字母总数为 \(6+2+3+6+2+7+4=30\)。

【样例 3 解释】

请注意本题中的句子可能并不满足英语语法要求。

【数据范围与限制】

本题开启捆绑测试。各个子任务的分值和特殊限制如下所述:

  • Subtask 1(40 pts):$ 中填入的单词所对应的数字不超过 \(50\)。
  • Subtask 2(60 pts):无特殊限制。

对于所有数据,\(1\leqslant n\leqslant 20\),$ 中填入的单词所对应的数字小于 \(1000\)。

信息

ID
1059
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
被复制
1
上传者