만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

에스토니아어 수사 정렬

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

요약
에스토니아어 수사로 적힌 정수 N개를 값으로 변환한 뒤 작은 수부터 오름차순으로 정렬합니다.
난이도

보통10점 중 5점

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

문제

때로는 데이터가 처리하기 편한 형태로 주어지지 않는다. 사람이 글이나 말로 적은 값을 다뤄야 한다면 어떻게 해야 할까? 이 문제는 에스토니아어로 적은 정수를 정렬한다.

수를 변환하려면 철자법을 조금 알아야 한다. 기본 규칙은 다음과 같다.

  • '-teist', '-kümmend', '-sada'로 끝나는 말은 앞의 수사와 붙여 쓴다. 나머지 수사는 모두 띄어 쓴다(에스토니아어 참고서의 규칙이다).
  • 수는 보통 자릿수가 큰 순서대로 내림차순으로 쓴다(…\ldots, 100100, 1010, 11). 어떤 자리에 00만 있으면 그 자릿수는 쓰지 않는다.
  • 자릿수는 1 0001\,000 단위로 묶는다(…\ldots, 1 000 0001\,000\,000, 1 0001\,000, 11). 각 묶음의 단위 이름('miljon', 'tuhat')은 한 번만 쓴다.

아래 표는 주어진 범위의 에스토니아어 수를 읽는 데 충분하다. 같은 수를 두 가지 형태로 쓸 수 있으면 쉼표로 구분했다. 실제로는 다른 병행형도 쓰이지만, 이 문제에서는 아래 형태만 사용한다.

숫자단어숫자단어
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

입력

첫 줄에는 정렬할 값의 개수 NN이 주어진다(2≤N≤1042 \le N \le 10^4). 다음 NN개 줄에는 각각 위 규칙에 따라 단어로 완전히 적힌 정수가 하나씩 주어진다. 입력에서는 모든 글자 ü가 u로 바뀌어 있다. 각 줄의 값 AiA_i는 32비트 부호 있는 정수 범위 안에 있다(−231≤Ai<231-2^{31} \le A_i < 2^{31}).

출력

단어로 적힌 수를 비내림차순으로 정렬하여 한 줄에 하나씩 출력한다. 각 출력 줄은 입력에서 대응하는 줄과 정확히 같아야 한다. 값이 같은 줄은 어떤 순서로 나와도 된다.

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