만드는 중입니다

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

길이 문자열

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

요약
정수 a와 b가 주어질 때 길이가 a×10^b인 길이 문자열을 구하고, 그 길이가 21 이상이면 앞 17글자만 출력합니다.
난이도

어려움10점 중 8점

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

문제

길이 문자열은 숫자 0∼9와 하이픈('-')으로만 이루어진 문자열 중 다음 조건을 만족하는 것을 가리킨다.

  • '-'이 22개 이상 연속해서 등장하지 않는다.
  • 문자열의 첫 문자는 '0'이 아니다.
  • 문자열의 마지막 문자는 '-'이 아니다.
  • '-'의 다음 문자로 '0'이 등장하지 않는다.
  • 문자열의 숫자로만 이루어진 접미사 중 가장 긴 것을 1010진법의 수로 해석하면 문자열의 길이와 같다. 이때 그러한 접미사가 빈 문자열이면 0으로 해석한다.
  • 문자열에 '-'이 등장한다면 문자열의 처음부터 가장 마지막에 등장하는 '-' 앞까지의 부분 문자열이 길이 문자열이다.

임의의 음이 아닌 정수 nn에 대해 길이가 nn인 길이 문자열은 유일하게 한 개 존재한다. 다음은 각각 길이 55, 88, 1313인 길이 문자열의 예시이다.

1-3-5
-2-4-6-8
1-3-5-7-10-13

자연수 aa와 음이 아닌 정수 bb가 주어졌을 때 길이가 a×10ba \times 10^b인 길이 문자열을 찾아보자.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤100 0001 \leq T \leq 100\ 000)

각 테스트 케이스마다 두 정수 aa, bb가 공백으로 구분되어 한 줄에 주어진다. (1≤a≤1091 \leq a \leq 10^9, 0≤b≤1060 \leq b \leq 10^6)

출력

각 테스트 케이스마다 길이 a×10ba \times 10^b인 길이 문자열을 출력한다. a×10b≥21a \times 10^b \geq 21이면 문자열의 맨 앞의 17글자만 예시와 같은 형식으로 출력한다.

예제2

  1. 예제 1

    입력
    3
    5 0
    8 0
    13 0
    
    예상 출력
    1-3-5
    -2-4-6-8
    1-3-5-7-10-13
    
  2. 예제 2

    입력
    2
    25 4
    32 6
    
    예상 출력
    1-3-5-7-10-13-16-...
    -2-4-6-8-11-14-17...