크로아티아 숫자 읽기

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

요약
주어진 알파벳으로 시작하는 크로아티아어 숫자 읽기를 갖는 양의 정수들을 증가 순서로 나열할 때, N번째 수(최대 10^12)를 구하는 문제입니다.
난이도

어려움10점 중 8점

유형
수학, 이분 탐색, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

아래 표는 크로아티아어에서 양의 정수를 읽을 때 처음 나오는 단어를 정리한 것이다. 수는 오른쪽에서 세 자리씩 끊어 읽는다. 가장 높은 자리의 숫자가 1이 아니면 그 숫자를 나타내는 단어부터 읽는다. 가장 높은 자리의 숫자가 1이면 보통 그 1은 생략하고 자리값을 나타내는 단어부터 읽는다. 예외적으로 수 1은 jedan으로 읽고, 가장 높은 세 자리 묶음이 11 이상 19 이하이면 표의 해당 단어부터 읽는다. 예를 들어 40은 četiri, 705는 sedam, 150은 sto, 1 500은 tisuću, 15 000은 petnaest로 시작한다.

1jedan10deset1xxsto
2dva11jedanaest1xxxtisuću
3tri12dvanaest1xxxxdeset tisuća
4četiri13trinaest1xxxxxsto tisuća
5pet14četrnaest1xxxxxxmilijun
6šest15petnaest1xxxxxxxdeset milijuna
7sedam16šesnaest1xxxxxxxxsto milijuna
8osam17sedamnaest1xxxxxxxxxmilijarda
9devet18osamnaest1xxxxxxxxxxdeset milijardi
19devetnaest1xxxxxxxxxxxsto milijardi

어떤 대문자로 시작하는 양의 정수를 오름차순으로 나열한다고 하자. 예를 들어 P로 시작하는 수열은 5, 15, 50, 51, 52, ..., 59, 500, 501, ... 이다.

주어진 문자로 시작하는 수열에서 N번째 수를 구하라.

입력

입력은 문자 L과 정수 N이 공백으로 구분되어 주어진다. L은 D, J, M, O, P, S, T 중 하나이다.

정답은 10^12을 넘지 않는다.

출력

수열의 N번째 수를 출력한다.

예제3

  1. 예제 1

    입력
    S 1
    
    예상 출력
    7
    
  2. 예제 2

    입력
    P 13
    
    예상 출력
    500
    
  3. 예제 3

    입력
    M 1000006
    
    예상 출력
    1000000005