만드는 중입니다

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

길이가 K인 증가하는 부분 수열

시간 제한2초메모리 제한512 MB

요약
값이 엄격히 증가하는 길이 K인 부분수열의 개수를 5,000,000으로 나눈 나머지로 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 세그먼트 트리, 정렬, 조합론
정답자
아직 제출이 없습니다

문제

길이가 NN인 수열 A1,A2,…,ANA_1, A_2, \dots, A_N과 정수 KK가 주어진다. 수열 AA의 부분 수열 중에서 길이가 KK이면서 증가하는 것이 몇 개인지 구하시오.

부분 수열은 인덱스 i1<i2<⋯<iKi_1 < i_2 < \dots < i_K를 골라 만든 Ai1,Ai2,…,AiKA_{i_1}, A_{i_2}, \dots, A_{i_K}이다. 증가한다는 것은 Ai1<Ai2<⋯<AiKA_{i_1} < A_{i_2} < \dots < A_{i_K}가 성립한다는 뜻이므로, 값이 같은 원소가 이웃해 들어갈 수는 없다. 값이 같더라도 고른 인덱스가 하나라도 다르면 서로 다른 부분 수열로 센다.

입력

첫째 줄에 수열의 길이 NN (1≤N≤1000001 \le N \le 100000)과 정수 KK (1≤K≤501 \le K \le 50, K≤NK \le N)가 공백을 사이에 두고 주어진다.

둘째 줄에 A1,A2,…,ANA_1, A_2, \dots, A_N이 공백을 사이에 두고 주어진다. (1≤Ai≤1000001 \le A_i \le 100000)

출력

길이가 KK이면서 증가하는 부분 수열의 개수를 5,000,000으로 나눈 나머지를 첫째 줄에 출력한다.

예제6

  1. 예제 1

    입력
    4 3
    1 2 2 10
    
    예상 출력
    2
    
  2. 예제 2

    입력
    1 1
    1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    6 2
    7 7 7 7 7 7
    
    예상 출력
    0
    
  4. 예제 4

    입력
    10 3
    1 2 3 4 5 6 7 8 9 10
    
    예상 출력
    120
    
  5. 예제 5

    입력
    8 2
    100000 99999 5 4 3 2 1 1
    
    예상 출력
    0
    
  6. 예제 6

    입력
    5 1
    100000 1 50 50 2
    
    예상 출력
    5