CF1359A.Berland Poker

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Berland Poker

题目描述

Berland 扑克是一种使用 nn 张牌进行的游戏,其中有 mm 张是鬼牌。共有 kk 名玩家参与游戏(nn 能被 kk 整除)。

游戏开始时,每位玩家从牌堆中抽取 nk\frac{n}{k} 张牌(每张牌只会被一名玩家抽到)。拥有最多鬼牌的玩家获胜,得分为 x−yx-y,其中 xx 是获胜者手中的鬼牌数,yy 是其他所有玩家中鬼牌数的最大值。如果有两名或以上的玩家拥有最多的鬼牌,则他们都是获胜者,得分为 00。

以下是一些例子:

  • n=8n=8,m=3m=3,k=2k=2。如果一名玩家拿到 33 张鬼牌和 11 张普通牌,另一名玩家拿到 00 张鬼牌和 44 张普通牌,则第一名玩家获胜,得分为 3−0=33-0=3。
  • n=4n=4,m=2m=2,k=4k=4。两名玩家拿到普通牌,另外两名玩家拿到鬼牌,因此这两名玩家都是获胜者,得分为 00。
  • n=9n=9,m=6m=6,k=3k=3。如果第一名玩家拿到 33 张鬼牌,第二名玩家拿到 11 张鬼牌和 22 张普通牌,第三名玩家拿到 22 张鬼牌和 11 张普通牌,则第一名玩家获胜,得分为 3−2=13-2=1。
  • n=42n=42,m=0m=0,k=7k=7。由于没有鬼牌,每个人都拿到 00 张鬼牌,所有人都是获胜者,得分为 00。

给定 nn、mm 和 kk,请计算一名玩家获胜时能获得的最大分数。

输入格式

输入的第一行包含一个整数 tt(1≤t≤5001 \le t \le 500),表示测试用例的数量。

接下来每个测试用例包含一行,包含三个整数 nn、mm 和 kk(2≤n≤502 \le n \le 50,0≤m≤n0 \le m \le n,2≤k≤n2 \le k \le n,kk 是 nn 的约数)。

输出格式

对于每个测试用例,输出一个整数,表示一名玩家获胜时能获得的最大分数。

说明/提示

样例的测试用例已在题目描述中给出。

由 ChatGPT 4.1 翻译

样例

4
8 3 2
4 2 4
9 6 3
42 0 7
3
0
1
0

在线编程 IDE

建议全屏模式获得最佳体验