题目描述
给定一个正整数 k,有k 次询问,每次给定三个正整数ni , ei , di ,求两个正整数 pi ,qi ,使ni = pi ×qi 、ei ×di = (pi − 1) (qi − 1) + 1
输入描述
从文件 decode.in 中读入数据。
第一行一个正整数 k,表示有 k 次询问
接下来 k 行,第 i 行三个正整数ni , di , ei ,
输出描述
输出到文件 decode.out 中。
输出 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
输出
2 385 NO NO NO 11 78 3 241 2 286 NO NO 6 88
提示
【样例 2】
见选手目录下的 decode/decode2.in 与 decode/decode2.ans。
【样例 3】
见选手目录下的 decode/decode3.in 与 decode/decode3.ans。
【样例 4】
见选手目录下的 decode/decode4.in 与 decode/decode4.ans。
【数据范围】
以下记 m=n - e × d + 2 。
保证对于100%的数据,1 ≤ k ≤ 105 ,对于任意的 1 ≤ i ≤ k , 1 ≤ ni ≤ 1018 ,1 ≤ ei ×di ≤ 1018 , 1 ≤ m ≤ 109
本题需要使用文件输入输出,而非标准输入输出。
freopen("decode.in","r",stdin);
freopen("decode.out","w",stdout);