#ATarc146f. [ARC146F] Simple Solitaire
[ARC146F] Simple Solitaire
题目描述
给定一个 的排列 ,进行如下操作。
有 张卡片,这些卡片编号为 到 。卡片 上写有 。
有一个整数 。一开始 PCT 君手上没有任何卡片。PCT 君按照 的顺序进行以下操作:
- 获得卡片 。之后,只要手上有写有 的卡片,就重复以下操作:
- 吃掉写有 的卡片,并将 加 。
- 如果当前手上的卡片数量不少于 ,则将手上所有卡片全部丢弃,操作立即结束。此后不再进行任何操作。
现在,定义排列 的分数如下:
- 如果卡片被丢弃导致操作结束,则 的分数为 。
- 如果卡片没有被丢弃,操作一直进行到最后,则 的分数为 (第 次操作结束时 PCT 君手上持有的卡片数量)。
对于所有可能的 (共有 种),请输出所有分数的总和对 取模的结果。
输入格式
输入通过标准输入给出,格式如下:
输出格式
请输出答案。
样例 1
输入
3 2
输出
1
样例 2
输入
3 3
输出
5
样例 3
输入
146146 146
输出
103537573
说明/提示
限制条件
- 输入均为整数。
样例解释 1
以 为例,操作如下:
- 第 次操作:PCT 君获得卡片 。当前手上有 张卡片,继续操作。
- 第 次操作:PCT 君获得卡片 。吃掉卡片 , 变为 。当前手上有 张卡片,继续操作。
- 第 次操作:PCT 君获得卡片 。吃掉卡片 , 变为 。当前手上有 张卡片,继续操作。
操作一直进行到最后,因此 的分数为 。除了 之外,没有其他排列的分数大于等于 ,所以答案为 。
由 ChatGPT 4.1 翻译