SP20196 DIVEQL - The Magical Bag

题目描述

Dukkar 拥有一个神奇的袋子,其神奇之处在于袋子的“魔力值”为 **P**。这意味着任何放入袋子里的东西,数量都会在下一步变为原来的 **P** 倍。 现在,Dukkar 希望利用这个魔袋子将巧克力平均分给他的 **N** 个学生: 开始时,Dukkar 手中有 **Z** 块巧克力。他将其中的 **X** 块分给第一个学生,并把剩下的巧克力放入神奇的袋子,这样在下一步它们的数量变为 **P** 倍。接下来,他再从袋子里拿出 **X** 块巧克力给第二个学生,剩下的巧克力数量在下一步同样会变成 **P** 倍。这个过程一直持续下去。 你的任务是找到最小的 **Z**,使得在最后一步分给最后一个学生 **X** 块巧克力后,袋子里不再有剩余的巧克力。

输入格式

输入的第一行包含一个整数 **T**,表示测试用例的数量(**T** < 100000)。接下来的 **T** 行,每行包含两个整数 **N** 和 **P**,表示学生人数和袋子的魔力值。

输出格式

对于每个测试用例,输出最小的 **Z** 和对应的 **X**。由于结果可能非常大,请输出模 1000000007 以后的结果。 (即 Z % 1000000007 和 X % 1000000007) ## 示例 **输入:** ``` 1 3 2 ``` **输出:** ``` 7 4 ``` **解释:** 设定 Z = 7,开始时,Dukkar 分给第一个学生 4 块巧克力,袋子里剩余 3 块。在下一步中,这 3 块巧克力变为 6 块,然后他又分给第二个学生 4 块。在下一步中,剩下的 2 块巧克力变成 4 块,最后全部分给第三个学生。此时袋子已经空了。 ## 数据范围 - 1 ≤ T < 100000 - 2 ≤ N ≤ 10^18 - 2 ≤ P ≤ 10^9 **本翻译由 AI 自动生成**