CF1283B.Candies Division

入门

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Santa has nn candies and he wants to gift them to kk kids. He wants to divide as many candies as possible between all kk kids. Santa can't divide one candy into parts but he is allowed to not use some candies at all.

Suppose the kid who recieves the minimum number of candies has aa candies and the kid who recieves the maximum number of candies has bb candies. Then Santa will be satisfied, if the both conditions are met at the same time:

  • b−a≤1b - a \le 1 (it means b=ab = a or b=a+1b = a + 1);
  • the number of kids who has a+1a+1 candies (note that a+1a+1 not necessarily equals bb) does not exceed ⌊k2⌋\lfloor\frac{k}{2}\rfloor (less than or equal to ⌊k2⌋\lfloor\frac{k}{2}\rfloor).

⌊k2⌋\lfloor\frac{k}{2}\rfloor is kk divided by 22 and rounded down to the nearest integer. For example, if k=5k=5 then ⌊k2⌋=⌊52⌋=2\lfloor\frac{k}{2}\rfloor=\lfloor\frac{5}{2}\rfloor=2.

Your task is to find the maximum number of candies Santa can give to kids so that he will be satisfied.

You have to answer tt independent test cases.

圣诞老人有 nn 颗糖果,他想将这些糖果分给 kk 个孩子。他希望尽可能多地将糖果分发给全部 kk 个孩子。圣诞老人不能把一颗糖果分割成若干部分,但他可以完全不使用某些糖果。

假设收到最少糖果的孩子得到了 aa 颗糖果,而收到最多糖果的孩子得到了 bb 颗糖果。当且仅当同时满足以下两个条件时,圣诞老人才会感到满意:

  • b−a≤1b - a \le 1(即 b=ab = a 或 b=a+1b = a + 1);
  • 得到 a+1a+1 颗糖果的孩子人数(注意:a+1a+1 不一定等于 bb)不超过 ⌊k2⌋\lfloor\frac{k}{2}\rfloor(即小于或等于 ⌊k2⌋\lfloor\frac{k}{2}\rfloor)。

其中 ⌊k2⌋\lfloor\frac{k}{2}\rfloor 表示 kk 除以 22 后向下取整(即舍去小数部分)。例如,若 k=5k=5,则 ⌊k2⌋=⌊52⌋=2\lfloor\frac{k}{2}\rfloor=\lfloor\frac{5}{2}\rfloor=2。

你的任务是求出圣诞老人在感到满意前提下,最多能分发给孩子们的糖果总数。

你需要回答 tt 个相互独立的测试用例。

输入格式

The first line of the input contains one integer tt (1≤t≤5⋅1041 \le t \le 5 \cdot 10^4) — the number of test cases.

The next tt lines describe test cases. The ii-th test case contains two integers nn and kk (1≤n,k≤1091 \le n, k \le 10^9) — the number of candies and the number of kids.

输入的第一行包含一个整数 tt(1≤t≤5⋅1041 \le t \le 5 \cdot 10^4)—— 测试用例的数量。

接下来的 tt 行描述各个测试用例。第 ii 个测试用例包含两个整数 nn 和 kk(1≤n,k≤1091 \le n, k \le 10^9)—— 分别表示糖果的数量和小孩的数量。

输出格式

For each test case print the answer on it — the maximum number of candies Santa can give to kids so that he will be satisfied.

对于每个测试用例,输出该测试用例的答案——即圣诞老人能够分给孩子们的最多糖果数量,使得他感到满意。

输入输出样例

  • 输入#1

    5
    5 2
    19 4
    12 7
    6 2
    100000 50010

    输出#1

    5
    18
    10
    6
    75015

说明/提示

In the first test case, Santa can give 33 and 22 candies to kids. There a=2,b=3,a+1=3a=2, b=3,a+1=3.

In the second test case, Santa can give 5,5,45, 5, 4 and 44 candies. There a=4,b=5,a+1=5a=4,b=5,a+1=5. The answer cannot be greater because then the number of kids with 55 candies will be 33.

In the third test case, Santa can distribute candies in the following way: [1,2,2,1,1,2,1][1, 2, 2, 1, 1, 2, 1]. There a=1,b=2,a+1=2a=1,b=2,a+1=2. He cannot distribute two remaining candies in a way to be satisfied.

In the fourth test case, Santa can distribute candies in the following way: [3,3][3, 3]. There a=3,b=3,a+1=4a=3, b=3, a+1=4. Santa distributed all 66 candies.

在第一个测试用例中,圣诞老人可以分别给孩子们 33 颗和 22 颗糖果。此时 a=2,b=3,a+1=3a=2, b=3, a+1=3。

在第二个测试用例中,圣诞老人可以分别给孩子们 55、55、44 和 44 颗糖果。此时 a=4,b=5,a+1=5a=4, b=5, a+1=5。答案不可能更大,否则拥有 55 颗糖果的孩子人数将达到 33 人。

在第三个测试用例中,圣诞老人可以按如下方式分发糖果:[1,2,2,1,1,2,1][1, 2, 2, 1, 1, 2, 1]。此时 a=1,b=2,a+1=2a=1, b=2, a+1=2。他无法以满足条件的方式分发剩余的两颗糖果。

在第四个测试用例中,圣诞老人可以按如下方式分发糖果:[3,3][3, 3]。此时 a=3,b=3,a+1=4a=3, b=3, a+1=4。圣诞老人已将全部 66 颗糖果分发完毕。

输入解题思路,AI测评打分。不知道怎么写?

首页