#P1209. X 等于 Y
X 等于 Y
Description
对于正整数 \(X\) 与 \(b \geq 2\),定义 \(f(X,b)\) 为一个描述了 \(X\) 在 \(b\) 进制表示下的序列,其中序列的第 \(i\) 个元素表示 \(X\) 在 \(b\) 进制表示下从低到高第 \(i\) 位的值。例如,\(f(6, 2) = \{0, 1, 1\}\),而 \(f(233, 17) = \{12, 13\}\)。
给定的四个正整数 \(x\),\(y\),\(A\) 和 \(B\),请找到两个正整数 \(a\) 和 \(b\),同时满足:
- \(2 \leq a \leq A\)
- \(2 \leq b \leq B\)
- \(f(x, a) = f(y, b)\)
Input
有多组测试数据。第一行输入一个整数 \(T\)(\(1 \leq T \leq 10^3\))表示测试数据组数。对于每组测试数据:
第一行输入四个整数 \(x\),\(y\),\(A\) 和 \(B\)(\(1 \leq x,y \leq 10^9\),\(2 \leq A,B \leq 10^9\))。
保证至多只有 \(50\) 组测试数据满足 \(\max(x, y) > 10^6\)。
Output
对于每组测试数据,如果不存在合法的正整数 \(a\) 和 \(b\),则输出一行一个字符串
NO。
否则,首先输出一行一个字符串
YES。下一行输出两个由单个空格分隔的整数 \(a\) 和 \(b\)。如果有多种合法答案,您可以输出任意一种。
6
1 1 1000 1000
1 2 1000 1000
3 11 1000 1000
157 291 5 6
157 291 3 6
10126 114514 789 12345
YES
2 2
NO
YES
2 10
YES
4 5
NO
YES
779 9478