from functools import lru_cache from collections import deque @lru_cache(maxsize=50) def fatorial(N): if N == 1: return 1 elif N == 2: return 2 else: return N*fatorial(N-1) N = int(input()) command,*arr = map(int,input().split()) patorial_cnt = [] for k in range(1,N+1): patorial_cnt.append(fatorial(k)) if command == 1: k = arr[0] - 1 numbers = list(range(1,N+1)) result = [] lens = N-2 while lens >= 0: copy_k = k ind = copy_k//patorial_cnt[lens] k = copy_k%patorial_cnt[lens] result.append(numbers.pop(ind)) lens -= 1 result.append(numbers.pop()) print(*result) else: numbers = list(range(1,N+1)) result = 1 lens = N - 2 while arr: find_num = arr.pop(0) index = numbers.index(find_num) result += patorial_cnt[lens]*index numbers.pop(index) lens -= 1 print(result)
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 2031 이 쿠키 달지 않아! (0) | 2021.05.02 |
---|---|
[BOJ/백준] 1949 우수 마을 (0) | 2021.05.02 |
[BOJ/백준] 1405 미친 로봇 (0) | 2021.05.02 |
[BOJ/백준] 1339 단어 수학 (0) | 2021.05.02 |
[BOJ/백준] 1219 오민식의 고민 (0) | 2021.05.02 |