만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

루나의 게임 세팅

면접 대비

시간 제한1초메모리 제한1024 MB

요약
서로 다른 높이의 탑 N개 중 K개를 골라 일렬로 세울 때, 앞뒤 어디서나 보이는 배치의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 4점

유형
조합론, 수학
정답자
아직 제출이 없습니다

문제

루나와 리나는 타워 건설 게임을 하려고 한다. 이 게임은 KK개의 타워를 사용하며, 루나가 게임을 세팅하려고 한다. 게임 세팅은 서로 다른 높이의 NN개의 타워 중 KK개를 골라 원하는 순서로 일렬로 배치하는 것이다. 이때 앞과 뒤에서 바라볼 때 모든 타워가 최소 한 번은 보여야 한다. 즉, 어떤 타워에 대해 그보다 높은 타워가 그 타워의 앞쪽과 뒤쪽에 모두 존재하면 안 된다. 게임을 세팅하던 루나는 세팅 방법이 얼마나 많은지 궁금해졌다. 루나를 도와 게임 세팅의 경우의 수를 구해보자.

입력

첫째 줄에 두 양의 정수 NN과 KK가 주어진다. 둘째 줄에는 각 타워의 높이 A1,A2,⋯ ,ANA_{1}, A_{2}, \cdots, A_{N}이 공백으로 구분되어 주어진다. 모든 입력은 정수이다.

출력

게임 세팅의 경우의 수를 109+710^{9}+7로 나눈 나머지를 출력한다.

제한

1≤K≤N≤20001 \leq K \leq N \leq 2000, 1≤Ai≤1091 \leq A_{i} \leq 10^{9}이고, 모든 AiA_{i}는 서로 다른 정수이다.

예제1

  1. 예제 1

    입력
    5 3
    1 6 7 9 11
    
    예상 출력
    40