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()