#arc146f. [arc146_f]Simple Solitaire
[arc146_f]Simple Solitaire
题目描述
对于一个由 的排列 ,执行以下过程。
我们有 张卡片,编号为 到 。第 张卡片上写着整数 。
有一个整数 和一个叫做 PCT 的男孩,他一开始什么都没有。PCT 对每个 按照以下顺序执行以下操作。
拿到第 张卡片。然后,只要他手中有一张写着 的卡片,就重复以下动作:
吃掉写着 的卡片,然后将 加 。
如果 PCT 当前手中的卡片数达到了 或更多,他将丢弃所有卡片,并终止过程,不再执行任何操作。
现在,让我们根据以下规则定义排列 的得分:
- 如果通过丢弃卡片来终止过程,那么 的得分为 ;
- 如果过程一直执行到最后而没有丢弃卡片,那么 的得分为 过程的第 步结束时 PCT 手中的卡片数 。
共有 种 的排列 。请找出所有这些排列得分的总和,结果对 取模。
约束条件
- 输入中的所有值均为整数。
输入
从标准输入读取输入数据,输入格式如下:
输出
输出答案。
示例输入1
3 2
示例输出1
1
对于 ,过程如下。
- 第一步:
- PCT 拿到第 张卡片。
- PCT 当前手中有 张卡片,所以他继续执行。
- 第二步:
- PCT 拿到第 张卡片。
- PCT 吃掉第 张卡片并将 。
- PCT 当前手中有 张卡片,所以他继续执行。
- 第三步:
- PCT 拿到第 张卡片。
- PCT 吃掉第 张和第 张卡片,并将 。
- PCT 当前手中没有卡片,所以他继续执行。
过程一直执行到最后,所以 的得分为 。
除了 ,没有其他排列的得分大于等于 ,所以答案是 。
示例输入2
3 3
示例输出2
5
示例输入3
146146 146
示例输出3
103537573