CF1836B.Astrophysicists

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

Astrophysicists

题目描述

在遥远的未来,将会有第一次飞往火星的航班发射。为了庆祝这一成功,参与该项目的 nn 位天体物理学家将获得总价值为 kk 枚金币的奖金。

你需要将这些奖金分配给天体物理学家。为了方便起见,奖金将以银币的形式发放。每枚金币价值 gg 枚银币,因此你需要将全部 kgk \cdot g 枚银币分配给 nn 个人。

不幸的是,公司目前遇到了一些财务问题。因此,公司决定将奖金金额四舍五入到最接近的整数枚金币,而不是按奖金上写的银币数发放。

四舍五入的规则如下:如果某位天体物理学家的奖金为 xx 枚银币,记 r=xmodgr = x \bmod g,则:

  • 如果 rg2r \geq \lceil \frac{g}{2} \rceil,该天体物理学家实际收到 x+(gr)x + (g - r) 枚银币;
  • 否则,该天体物理学家实际收到 xrx - r 枚银币。

注意,由于四舍五入,实际发放的银币总数通常不等于 kgk \cdot g。操作 amodba \bmod b 表示 aa 除以 bb 的余数。四舍五入前的分配总和必须等于 kgk \cdot g 枚银币,但允许有些人分配到 00 枚银币。你的目标是通过合理分配,使公司因四舍五入而节省的银币数尽可能多。请注意,总有一种分配方式使公司实际发放的银币数不超过 kgk \cdot g

输入格式

输入的第一行包含一个整数 tt1t1041 \leq t \leq 10^4),表示测试用例的数量。

接下来的 tt 行,每行描述一个测试用例,包含三个整数 nnkkgg1n1091 \le n \le 10^90k1090 \le k \le 10^92g1092 \le g \le 10^9),分别表示公司中的天体物理学家人数、要分配的金币总数以及一枚金币对应的银币数。

输出格式

对于每个测试用例,输出一行一个整数,表示通过四舍五入最多可以节省的银币数。

说明/提示

在第一个测试用例中,一种最优分配方式如下:

  • 第一个人:x=30x = 30 枚银币,公司实际支付 00,节省 3030 枚银币;
  • 第二个人:x=140x = 140 枚银币,公司实际支付 100100,节省 4040 枚银币;
  • 第三个人:x=130x = 130 枚银币,公司实际支付 100100,节省 3030 枚银币。

在第二个测试用例中,可以有如下分配:

  • 第一个人:x=8x = 8 枚银币,公司实际支付 1414,多支付 66 枚银币;
  • 第二个人:x=6x = 6 枚银币,公司实际支付 00,节省 66 枚银币。

如果两位天体物理学家都分配 77 枚银币,则公司需要额外支付一枚金币来覆盖奖金。

由 ChatGPT 4.1 翻译

样例

5
3 3 100
2 1 14
91 2 13
36 16 6
73 8 22
100
0
26
72
176

在线编程 IDE

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