[题目描述]

给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni, ei, di,求两个正整数 pi, qi,使 ni = pi x qi、ei x di = (pi – 1)(qi – 1) + 1。

[输入格式]

第一行一个正整数 k,表示有 k 次询问。
接下来 k 行,第 i 行三个正整数 ni, di, ei

[输出格式]

输出 k 行,每行两个正整数 pi, qi 表示答案。
为使输出统一,你应当保证 pi ≤ qi
如果无解,请输出 NO。

[输入输出样例]

[输入样例1]
10
770 77 5
633 1 211
545 1 499
683 3 227
858 3 257
723 37 13
572 26 11
867 17 17
829 3 263
528 4 109
[输出样例1]
2 385
NO
NO
NO
11 78
3 241
2 286
NO
NO
6 88

[数据范围]

以下记 m = n – e × d + 2。
保证对于 100% 的数据,1 ≤ k ≤ 105,对于任意的 1 ≤ i ≤ k,1 < ni ≤ 1018,1 ≤ ei ≤ di ≤ 1018,1 ≤ m ≤ 109

[查看题解]

查看题解请点击信息学奥赛(C++普及组)顺序结构题单

发表回复