PERMS
면접 대비시간 제한1초메모리 제한128 MB
각 질의 (n, k)마다 1부터 n까지의 순열 중 반전이 정확히 k개인 것의 개수를 구한다. n은 18 이하, k는 200 이하이다.
문제
을 한 줄로 나열한 것을 순열이라 하고, 순열 에서 이면서 인 쌍 을 뒤바뀜(inversion) 이라고 한다. 즉, 큰 수가 작은 수보다 앞에 오는 경우를 말한다. 순열의 뒤바뀜 개수는 그 순열이 얼마나 "정렬되지 않았는지"를 나타내며, 정렬 알고리즘의 평균 수행 시간을 분석할 때 유용하게 쓰인다.
의 순열 중에서 뒤바뀜이 정확히 개인 것이 몇 개인지 구하여라.
예를 들어 일 때 순열은 모두 개이며, 각 순열의 뒤바뀜 개수는 다음과 같다.
따라서 원소가 개인 순열 중 뒤바뀜이 개인 것은 개, 개인 것은 개, 개인 것은 개, 개인 것은 개이며, 개 이상인 것은 없다.
입력
입력은 하나 이상의 질의로 이루어지며, 각 질의는 한 줄에 주어진다. 각 줄에는 정수 () 과 음이 아닌 정수 () 가 주어진다. 입력의 끝은 인 줄로 표시되며, 이 줄은 처리하지 않는다.
출력
각 질의마다 의 순열 중 뒤바뀜이 정확히 개인 것의 개수를 한 줄에 하나씩 출력한다.