만드는 중입니다

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

2022는 무엇이 특별할까?

면접 대비

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

요약
N과 진법 d가 주어질 때, d진법으로 나타냈을 때 0부터 d-1까지 각 숫자가 정확히 한 번씩 쓰이는 가장 작은 수를 N보다 크게 구합니다.
난이도

쉬움10점 중 3점

유형
수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

신년대회의 개최일은 2022년 1월 15일이다. 준겸이는 대회가 개최된다는 사실이 기뻐 제목을 뚫어져라 보다가 2022가 무언가 특별하다는 사실을 깨달았다.

그렇다. 20222022를 55진법으로 표현하면 31042(5)31042_{(5)}로, 55진법의 각 숫자인 00, 11, 22, 33, 44가 모두 한 번씩 나타난다. 다음에 이런 연도가 오려면 2054년이 되어야 한다.

수 NN과 진법 dd가 주어진다. NN보다 크면서, dd진법으로 표현했을 때 dd진법의 숫자가 모두 정확히 한 번씩 등장하는 가장 작은 수를 찾아야 한다. 단, 수를 표기할 때 앞에 불필요한 0이 있어서는 안 된다.

입력

첫 번째 줄에 수 NN과 진법 dd가 공백을 사이에 두고 1010진법으로 주어진다.

출력

첫 번째 줄에 NN보다 크면서 dd진법으로 표현했을 때 dd진법의 숫자가 모두 정확히 한 번씩 등장하는 수 중 가장 작은 것을 1010진법으로 출력한다.

그런 수가 존재하지 않으면 첫 번째 줄에 −1-1을 출력한다.

제한

  • 1≤N≤1091 \le N \le 10^9
  • 2≤d≤92 \le d \le 9
  • 입력으로 주어지는 모든 수는 정수이고, 1010진법으로 표현되어 있다.

힌트

  • 양의 정수 AA를 dd진법으로 표현한 결과가 anan−1⋯a1a0(d)a_n a_{n-1} \cdots a_1 a_0{}_{(d)}라는 것은, A=an×dn+an−1×dn−1+⋯+a1×d1+a0×d0A = a_n \times d^n + a_{n-1} \times d^{n-1} + \cdots + a_1 \times d^1 + a_0 \times d^0라는 뜻이다. 단, an≠0a_n \neq 0이다.
    • 예를 들어, 2022=3×54+1×53+0×52+4×51+2×50=31042(5)2022 = 3 \times 5^4 + 1 \times 5^3 + 0 \times 5^2 + 4 \times 5^1 + 2 \times 5^0 = 31042_{(5)}이다.
  • dd진법의 숫자는 00 이상 dd 미만의 숫자를 뜻한다.
  • AA를 dd진법으로 표현했을 때 dd진법의 숫자가 모두 정확히 한 번씩 등장한다는 것은, A=anan−1⋯a1a0(d)A = a_n a_{n-1} \cdots a_1 a_0{}_{(d)}라고 썼을 때 an,an−1,⋯ ,a0a_n, a_{n-1}, \cdots, a_0에 0,1,⋯ ,d−10, 1, \cdots, d-1이 각각 정확히 한 번씩 나온다는 뜻이다.

예제3

  1. 예제 1

    입력
    2021 5
    
    예상 출력
    2022
    
  2. 예제 2

    입력
    2022 5
    
    예상 출력
    2054
    
  3. 예제 3

    입력
    13857 6
    
    예상 출력
    14055