순열의 K-minsum
시간 제한2초메모리 제한512 MB
길이가 K+1 이상인 모든 연속 구간의 최솟값을 더한 K-minsum을 N!개 순열 전체에 대해 합한 값을 구한다.
문제
길이가 인 순열은 이상 이하의 자연수 개를 한 번씩 사용해 만든 수열이다. 같은 수가 두 번 이상 나오지 않으므로 길이가 인 순열은 모두 개다.
순열 의 원소를 앞에서부터 이라 하자. 의 K-minsum은 다음과 같이 정의한다.
은 나열된 수 중 최솟값이다. 결국 길이가 이상인 연속 구간의 최솟값을 모두 더한 값이다. 가 보다 크면 안쪽 합은 비어 있고 으로 친다.
과 가 주어진다. 길이가 인 개의 순열 각각에서 K-minsum을 구하고, 그 값을 모두 더한 결과를 구하라.
입력
첫째 줄에 순열의 길이 과 정수 가 공백으로 구분되어 주어진다. (, )
출력
길이가 인 개의 순열의 K-minsum을 모두 더한 값을 1,000,000,007로 나눈 나머지를 첫째 줄에 출력한다.