Максимумы

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

요약
1부터 n까지의 순열 중 정확히 k개의 극댓값(봉우리)을 갖는 순열의 개수를 239로 나눈 나머지를 구합니다. n은 10^15까지 커질 수 있습니다.
난이도

어려움10점 중 8점

유형
조합론, 동적 계획법, 정수론
정답자
아직 제출이 없습니다

문제

Говорят, что перестановка ⟨a_1,a_2,…,a_n⟩\langle a\_1, a\_2, \ldots, a\_n\rangle целых чисел от 1 до nn имеет kk максимумов, если неравенство a_i−1<a_i>a_i+1a\_{i-1} < a\_i > a\_{i+1} выполняется ровно для kk различных позиций ii (будем считать, что a_0=a_n+1=0a\_0=a\_{n+1}=0).

Например, у перестановки ⟨3,1,4,5,2⟩\langle 3, 1, 4, 5, 2 \rangle два максимума: i=1i = 1 и i=4i = 4.

По заданным nn и kk найдите количество перестановок чисел от 1 до nn ровно с kk максимумами. Верните это число по модулю 239.

입력

Входной файл содержит два целых числа: nn и kk (1≤n≤10151 \le n \le 10^{15}, 1≤k≤301 \le k \le 30).

출력

Выведите одно целое число --- количество перестановок чисел от 1 до nn ровно с kk максимумами, взятое по модулю 239.

예제2

  1. 예제 1

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

    입력
    10 3
    
    예상 출력
    131