CF1656H Equal LCM Subsets
题目描述
给定两个正整数集合 $A$ 和 $B$。你需要找到两个非空子集 $S_A \subseteq A$,$S_B \subseteq B$,使得 $S_A$ 中所有元素的最小公倍数(LCM)等于 $S_B$ 中所有元素的最小公倍数(LCM)。
输入格式
输入包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 200$),表示测试数据组数。
对于每组测试数据,第一行包含两个整数 $n, m$($1 \leq n, m \leq 1000$),分别表示集合 $A$ 和 $B$ 的大小。
接下来一行包含 $n$ 个互不相同的整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 4 \cdot 10^{36}$),表示集合 $A$ 的元素。
再接下来一行包含 $m$ 个互不相同的整数 $b_1, b_2, \ldots, b_m$($1 \leq b_i \leq 4 \cdot 10^{36}$),表示集合 $B$ 的元素。
所有测试数据中 $n$ 的总和与 $m$ 的总和不超过 $1000$。
输出格式
对于每组测试数据,如果不存在两个子集使得它们的最小公倍数相等,则输出一行 NO。
否则,输出一行 YES,接着一行两个整数 $|S_A|, |S_B|$($1 \leq |S_A| \leq n$,$1 \leq |S_B| \leq m$),表示子集 $S_A$ 和 $S_B$ 的大小。
下一行输出 $|S_A|$ 个整数 $x_1, x_2, \ldots, x_{|S_A|}$,表示 $S_A$ 的元素,接下来一行输出 $|S_B|$ 个整数 $y_1, y_2, \ldots, y_{|S_B|}$,表示 $S_B$ 的元素。如果存在多组解,输出任意一组均可。
说明/提示
由 ChatGPT 4.1 翻译