Sõnasort | 프로그래밍의 벗 PivotOJ
PivotOJ

Sõnasort

시간 제한: 1000ms메모리 제한: 1024MB출처: EIO 2023-24 finalBOJ 32732

문제

Mitte alati pole andmed mugavalt töödeldaval kujul. Mis juhtub, kui ongi vaja tegeleda inimkeeles kirjutatud või kõneldud väärtustega? Vaatame seda eesti keeles kirjutatud arvude sorteerimise näitel.

Arvude teisendamiseks on vaja tunda pisut ortograafiat. Järgnevad põhilised reeglid:

  • Sõnad '-teist', '-kümmend' ja '-sada' kirjutatakse eelneva arvsõnaga kokku, kõik teised arvsõnad kirjutatakse lahku (refereeritud eesti keele käsiraamatust).
  • Arvud kirjutatakse valdavalt järkude kaupa kahanevalt (\ldots, 100100, 1010, 11). Kui mõnele järgule vastaval kohal on vaid 00, siis seda järku ei kirjutata.
  • Järgud grupeeritakse 10001\,000 astmete kaupa (\ldots, 10000001\,000\,000, 10001\,000, 11), vastava grupi järgu nimi ('miljon', 'tuhat') kirjutatakse vaid üks kord.

Järgneb tabel, millest piisab eestikeelsete arvude lugemiseks etteantud vahemikus:

Arv Sõnadena Arv Sõnadena
00 null 9090 üheksakümmend
11 üks 100100 sada, ükssada
22 kaks 200200 kakssada
33 kolm ... ...
44 neli 900900 üheksasada
55 viis 10001\,000 tuhat, üks tuhat
66 kuus 20002\,000 kaks tuhat
77 seitse ... ...
88 kaheksa 100000100\,000 sada tuhat, ükssada tuhat
99 üheksa 106=100000010^6 = 1\,000\,000 miljon, üks miljon
1010 kümme 20000002\,000\,000 kaks miljonit
1111 üksteist 30000003\,000\,000 kolm miljonit
1212 kaksteist 109=100000000010^9 = 1\,000\,000\,000 miljard, üks miljard
... ... 20000000002\,000\,000\,000 kaks miljardit
1919 üheksateist 30000000003\,000\,000\,000 kolm miljardit
2020 kakskümmend 2510-2\,510 miinus kaks tuhat viissada kümme
2121 kakskümmend üks 100-100 miinus sada, miinus ükssada
2222 kakskümmend kaks 11111\,111 tuhat ükssada üksteist, üks tuhat ükssada üksteist
... ... 22042\,204 kaks tuhat kakssada neli
3030 kolmkümmend 23450004122\,345\,000\,412 kaks miljardit kolmsada nelikümmend viis miljonit nelisada kaksteist
3131 kolmkümmend üks

Märgime, et mõnel juhul on võimalikud paralleelvormid, need on tabelis komaga eraldatud (kasutuses on teisigi paralleelvorme, kuid ülesande lihtsustamiseks jääme eeltoodu juurde).

입력

Sisendi esimesel real on sorteeritavate väärtuste arv NN (2N1042 \le N \le 10^4).

Järgmisel NN real on igaühel üks täisarv, mis on kirjutatud täielikult sõnadena eeltoodud reegleid silmas pidades. {\bfseries Iga täht 'ü' on sisendis asendatud tähega 'u'.} Igale reale vastav arvväärtus AiA_i jääb 3232-bitise märgiga täisarvu piiridesse (231Ai<231-2^{31} \le A_i < 2^{31}).

출력

Väljastada sõnadena kirjutatud arvud sorteeritud mittekahanevas järjekorras eraldi ridadele. Iga väljastatud rida peab vastama täpselt vastavale reale sisendis. Võrdsete arvväärtustega read võivad olla omavahel suvaliselt järjestatud.

예제

예제 1

입력
5
kaks tuhat kakssada neli
viisteist
miinus kaks tuhat viissada kumme
tuhat ukssada uksteist
kolm
출력
miinus kaks tuhat viissada kumme
kolm
viisteist
tuhat ukssada uksteist
kaks tuhat kakssada neli
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.