목차

2022는 무엇이 특별할까?

ps
링크acmicpc.net/…
출처BOJ
문제 번호24268
문제명2022는 무엇이 특별할까?
레벨실버 2
분류

브루트포스

시간복잡도O(n*n!)
인풋사이즈n<=9
사용한 언어Python
제출기록30864KB / 100ms
최고기록72ms
해결날짜2022/01/15

풀이

코드

"""Solution code for "BOJ 24268. 2022는 무엇이 특별할까?".

- Problem link: https://www.acmicpc.net/problem/24268
- Solution link: http://www.teferi.net/ps/problems/boj/24268

Tags: [Brute Force]
"""

import itertools


def main():
    N, d = [int(x) for x in input().split()]

    min_num = int(''.join(str(x) for x in (1, 0, *range(2, d))), d)
    if N < min_num:
        print(min_num)
        return
    max_num = int(''.join(str(x) for x in reversed(range(d))), d)
    if N >= max_num:
        print('-1')
        return

    base_d = []
    while N > 0:
        N, r = divmod(N, d)
        base_d.append(r)
    base_d = tuple(reversed(base_d))

    
    num = next(x for x in itertools.permutations(range(d)) if x > base_d)
    print(int(''.join(str(x) for x in num), d))


if __name__ == '__main__':
    main()