베라와 정렬
시간 제한2초메모리 제한256 MB
재귀적 퀵정렬과 비슷한 함수가 비교를 정확히 K번 수행하는 크기 N 순열의 개수를 10^9+7로 나눈 나머지로 구한다.
문제
베라는 새로운 정렬 알고리즘을 만들었다. 그 알고리즘이 몇 단계를 거치는지 세려고 베라가 작성한 파이썬 함수는 다음과 같다.
def steps(array):
if len(array) == 0:
return 0
pivot = array[0]
count = 0
lesser = []
greater = []
for element in array:
count += 1
if element < pivot:
lesser.append(element)
elif element > pivot:
greater.append(element)
return count + steps(lesser) + steps(greater)
크기가 인 순열 는 정수열 이며, 원소는 모두 다르고 각각 이하의 양의 정수다.
정수 과 가 주어진다. 가 를 반환하는 크기 의 순열 가 몇 개인지 세어라. 답이 클 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫째 줄에 정수 과 가 공백으로 구분되어 주어진다.
출력
조건을 만족하는 순열의 개수를 로 나눈 나머지를 한 줄에 출력한다.
힌트
, 일 때 조건을 만족하는 순열은 과 두 개다.