TopCoder

User's AC Ratio

100.0% (9/9)

Submission's AC Ratio

48.8% (21/43)

Tags

Description

你知道用法文數數是一件困難的事嗎?法文的數字系統因為相較其他語言過於複雜,甚至因而衍伸了一系列的迷因。

今天,我們要來透過這個模擬賽來學習 $1 \sim 99$ 的法文。

影片版:

一開始,事情還很單純。首先,1 的法文是 un、2 的法文是 deux、3 的法文是 trois、4 的法文是 quatre、5 的法文是 cinq、6 的法文是 six(跟英文一樣,很酷對吧!)、7 的法文是 sept、8 的法文是 huit、9 的法文是 neuf、10 的法文是 dix。

法文的 11 到 16 和英文的 13 到 19 有點相似之處。英文的 13 到 19 是 -teen 系列,法文的 11 到 16 則是 -ze 系列。11 的法文是 onze、12 的法文是 douze、13 的法文是 treize、14 的法文是 quatorze、15 的法文是 quinze、16 的法文是 seize。

至於 17 到 19,我們則開始可以看到複合字的蹤影,因為這裡只有 3 個數,我們可以把它們列舉出來。17 的法文是 dix-sept (10-7)、18 的法文是 dix-huit (10-8)、19 的法文是 dix-neuf (10-9)。

接著是 20 到 69,我們首先介紹這些數中 10 的倍數的法文。20 的法文是 vingt、30 的法文是 trente、40 的法文是 quarante、50 的法文是 cinquante、60 的法文是 soixante。至於其他的數,大多數情況下就是把十位數部和個位數部以"-"連接起來即可,舉例來說,43 的法文是 quarante-trois (40-3)、69 的法文是 soixante-neuf (60-9)。既然剛剛說的是大多數,那就代表有特例:在這些數中,如果他除以 10 餘 1,那麼十位數部和個位數部之間還要加入一個「和(et)」,有點類似孔子說「吾十又五而志於學」的「又」。舉例來說,31 的法文是 trente-et-un、51 的法文則是 cinquante-et-un。

猜猜 70 的法文是什麼?septante?猜錯了!是 soixante-dix (60-10),想不到吧!其實,70 到 79 間的數 $x$,在翻譯時都需要解構成 60 和剩餘部份($x-60$)的複合字,型如 $60$-$(x-60)$。舉例來說,73 的法文是 soixante-treize (60-13)、79 的法文更是三重複合字 soixante-dix-neuf (60-10-9)。至於上一段所提到的「模 10 餘 1」規則至此仍然適用,所以 71 的法文是 soixante-et-onze。

更過份的來了:80 的法文是什麼?huitante?soixante-vingt (60-20)?都不對!是 quatre-vingts (4-20),因為 $4 \times 20 = 80$,創意滿分。81 到 99 的翻譯方式則類似 60 到 79 的規則,可以視為 80 和剩餘部份($x - 80$)的解構,不過這裡的 80 的 quatre-vingts 是不需要加 s 的。舉例來說,83 的法文是 quatre-vingt-trois (4-20-3) (注意這邊的 vingt 沒有加 s)、97 的法文則來到四重複合字 quatre-vingt-dix-sept (4-20-10-7)。這邊,我們要再來回頭提到「模 10 餘 1」規則,這條規則在 80 到 99 是不適用的喔!因此,81 的法文是 quatre-vingt-un (4-20-1)、91 的法文則是 quatre-vingt-onze (4-20-11)。

學會了嗎?我們來寫個程式檢驗你的學習成果吧!讀入一個 $1$ 到 $99$ 的整數,請輸出它的法文翻譯。

Input Format

每份測試檔案的第一行(也是唯一一行)會包含恰一個整數$N$,代表需要翻譯的正整數。

  • $1 \leq N \leq 99$

Output Format

輸出一個字串 $S$,代表正整數 $N$ 的法文翻譯。

Sample Input 1

11

Sample Output 1

onze

Sample Input 2

97

Sample Output 2

quatre-vingt-dix-sept

Hints

Problem Source

IOICamp 2023 Day3 pI

Subtasks

No. Testdata Range Constraints Score
1 0~1 範例測資 0
2 0~100 無特別限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 262144 65536 1 2
1 1000 262144 65536 1 2
2 1000 262144 65536 2
3 1000 262144 65536 2
4 1000 262144 65536 2
5 1000 262144 65536 2
6 1000 262144 65536 2
7 1000 262144 65536 2
8 1000 262144 65536 2
9 1000 262144 65536 2
10 1000 262144 65536 2
11 1000 262144 65536 2
12 1000 262144 65536 2
13 1000 262144 65536 2
14 1000 262144 65536 2
15 1000 262144 65536 2
16 1000 262144 65536 2
17 1000 262144 65536 2
18 1000 262144 65536 2
19 1000 262144 65536 2
20 1000 262144 65536 2
21 1000 262144 65536 2
22 1000 262144 65536 2
23 1000 262144 65536 2
24 1000 262144 65536 2
25 1000 262144 65536 2
26 1000 262144 65536 2
27 1000 262144 65536 2
28 1000 262144 65536 2
29 1000 262144 65536 2
30 1000 262144 65536 2
31 1000 262144 65536 2
32 1000 262144 65536 2
33 1000 262144 65536 2
34 1000 262144 65536 2
35 1000 262144 65536 2
36 1000 262144 65536 2
37 1000 262144 65536 2
38 1000 262144 65536 2
39 1000 262144 65536 2
40 1000 262144 65536 2
41 1000 262144 65536 2
42 1000 262144 65536 2
43 1000 262144 65536 2
44 1000 262144 65536 2
45 1000 262144 65536 2
46 1000 262144 65536 2
47 1000 262144 65536 2
48 1000 262144 65536 2
49 1000 262144 65536 2
50 1000 262144 65536 2
51 1000 262144 65536 2
52 1000 262144 65536 2
53 1000 262144 65536 2
54 1000 262144 65536 2
55 1000 262144 65536 2
56 1000 262144 65536 2
57 1000 262144 65536 2
58 1000 262144 65536 2
59 1000 262144 65536 2
60 1000 262144 65536 2
61 1000 262144 65536 2
62 1000 262144 65536 2
63 1000 262144 65536 2
64 1000 262144 65536 2
65 1000 262144 65536 2
66 1000 262144 65536 2
67 1000 262144 65536 2
68 1000 262144 65536 2
69 1000 262144 65536 2
70 1000 262144 65536 2
71 1000 262144 65536 2
72 1000 262144 65536 2
73 1000 262144 65536 2
74 1000 262144 65536 2
75 1000 262144 65536 2
76 1000 262144 65536 2
77 1000 262144 65536 2
78 1000 262144 65536 2
79 1000 262144 65536 2
80 1000 262144 65536 2
81 1000 262144 65536 2
82 1000 262144 65536 2
83 1000 262144 65536 2
84 1000 262144 65536 2
85 1000 262144 65536 2
86 1000 262144 65536 2
87 1000 262144 65536 2
88 1000 262144 65536 2
89 1000 262144 65536 2
90 1000 262144 65536 2
91 1000 262144 65536 2
92 1000 262144 65536 2
93 1000 262144 65536 2
94 1000 262144 65536 2
95 1000 262144 65536 2
96 1000 262144 65536 2
97 1000 262144 65536 2
98 1000 262144 65536 2
99 1000 262144 65536 2
100 1000 262144 65536 2