기차 추적 2
시간 제한2초메모리 제한512 MB
길이 N인 숨겨진 배열의 크기 K 구간별 최솟값이 주어질 때, 이 최솟값을 만드는 배열의 개수를 1000000007로 나눈 나머지로 구합니다.
문제
매일 특급열차가 농장 옆을 지나간다. 열차에는 개의 객차()가 있고, 각 객차에는 이상 이하의 양의 정수 번호가 붙어 있다. 서로 다른 객차에 같은 번호가 붙어 있을 수도 있다.
평소라면 Bessie는 열차가 지나가는 것을 보며 객차 번호를 기록한다. 하지만 오늘은 안개가 너무 짙어서 번호를 하나도 볼 수 없다. 다행히 Bessie는 도시의 믿을 만한 곳에서 객차 번호 수열의 슬라이딩 윈도우 최솟값을 구해 두었다. 양의 정수 와 개의 양의 정수 가 있으며, 는 객차 중 번호의 최솟값이다.
Bessie를 도와 슬라이딩 윈도우 최솟값과 맞아떨어지도록 각 객차에 번호를 붙이는 방법의 수를 구하라. 이 수는 매우 클 수 있으므로 로 나눈 나머지를 구한다.
Bessie의 정보는 완전히 신뢰할 수 있다. 맞아떨어지는 배정이 적어도 하나는 존재한다는 것이 보장된다.
입력
첫째 줄에 공백으로 구분된 두 정수 과 가 주어진다. 이어지는 줄에는 슬라이딩 윈도우 최솟값 가 한 줄에 하나씩 주어진다.
출력
하나의 정수를 출력한다. 각 객차에 이하의 양의 정수를 배정하는 방법 중, 모든 에 대해 객차 중 번호의 최솟값이 가 되는 방법의 수를 로 나눈 나머지이다.