Sõnasort

시간 제한1초메모리 제한1024 MB

요약
에스토니아어로 적힌 수 단어들을 실제 정수 값에 따라 정렬하는 문제로, 같은 수가 여러 표기 형태로 나타날 수 있다.
난이도

보통10점 중 6점

유형
문자열, 정렬, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

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 1,0001\\,000 astmete kaupa (…\ldots, 1,000,0001\\,000\\,000, 1,0001\\,000, 11), vastava grupi järgu nimi ('miljon', 'tuhat') kirjutatakse vaid üks kord.

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

ArvSõnadenaArvSõnadena
00null9090üheksakümmend
11üks100100sada, ükssada
22kaks200200kakssada
33kolm......
44neli900900üheksasada
55viis1,0001\\,000tuhat, üks tuhat
66kuus2,0002\\,000kaks tuhat
77seitse......
88kaheksa100,000100\\,000sada tuhat, ükssada tuhat
99üheksa106=1,000,00010^6 = 1\\,000\\,000miljon, üks miljon
1010kümme2,000,0002\\,000\\,000kaks miljonit
1111üksteist3,000,0003\\,000\\,000kolm miljonit
1212kaksteist109=1,000,000,00010^9 = 1\\,000\\,000\\,000miljard, üks miljard
......2,000,000,0002\\,000\\,000\\,000kaks miljardit
1919üheksateist3,000,000,0003\\,000\\,000\\,000kolm miljardit
2020kakskümmend−2,510-2\\,510miinus kaks tuhat viissada kümme
2121kakskümmend üks−100-100miinus sada, miinus ükssada
2222kakskümmend kaks1,1111\\,111tuhat ükssada üksteist, üks tuhat ükssada üksteist
......2,2042\\,204kaks tuhat kakssada neli
3030kolmkümmend2,345,000,4122\\,345\\,000\\,412kaks miljardit kolmsada nelikümmend viis miljonit nelisada kaksteist
3131kolmkü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 (2≤N≤1042 \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 A_iA\_i jääb 3232-bitise märgiga täisarvu piiridesse (−231≤A_i<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

  1. 예제 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