题库练习 Timber
← 上一题 下一题 →

A15936 | Timber

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

There is a beautiful alley with trees in front of a shopping mall. Unfortunately, it has to go to make space for the parking lot.

The trees on the alley all grow in a single line. There are $n$ spots for trees, index $0$ is the shopping mall, index $n+1$ is the road and indices from $1$ to $n$ are the spots for trees. Some of them are taken — there grow trees of the same height $k$ . No more than one tree grows in each spot.

When you chop down a tree in the spot $x$ , you can make it fall either left or right. If it falls to the left, it takes up spots from $x-k$ to $x$ , inclusive. If it falls to the right, it takes up spots from $x$ to $x+k$ , inclusive.

Let $m$ trees on the alley grow in some spots $x_1, x_2, \dots, x_m$ . Let an alley be called unfortunate if all $m$ trees can be chopped down in such a way that:

- no tree falls on the shopping mall or the road;
- each spot is taken up by no more than one fallen tree.

Calculate the number of different unfortunate alleys with $m$ trees of height $k$ . Two alleys are considered different if there is a spot $y$ such that a tree grows in $y$ on the first alley and doesn't grow in $y$ on the second alley.

Output the number modulo $998\,244\,353$ .

输入格式

The only line contains three integers $n, m$ and $k$ ( $1 \le m, k \le n \le 3 \cdot 10^5$ ) — the number of spots for the trees, the number of trees and the height of each tree.

输出格式

Print a single integer — the number of different unfortunate alleys with $m$ trees of height $k$ , modulo $998\,244\,353$ .

输入输出样例

输入 #1
6 1 4
输出 #1
4
输入 #2
5 2 2
输出 #2
0
输入 #3
6 2 2
输出 #3
4
输入 #4
15 3 2
输出 #4
311
C++ 编辑器
输入
输出