CF516E Drazil and His Happy Friends
题目描述
Drazil 有许多朋友,他们中有些是开心的,有些是不开心的。Drazil 想让所有朋友都变得开心,于是他发明了如下计划。
在他的朋友中有 $n$ 个男孩和 $m$ 个女孩。我们分别将男孩编号为 $0$ 到 $n-1$,女孩编号为 $0$ 到 $m-1$。在第 $i$ 天,Drazil 会邀请第 $i \bmod n$ 个男孩和第 $i \bmod m$ 个女孩一起吃饭(作为一名程序员,$i$ 从 $0$ 开始)。如果这两人中有一人是开心的,另一人也会变得开心。否则,这两人状态不变。一旦某人变得开心(或一开始就是开心的),他将永远保持开心。
Drazil 想知道第几天他所有的朋友都会变得开心,或者判断是否永远不会全部都开心。
输入格式
第一行包含两个整数 $n$ 和 $m$($1\leq n,m\leq 10^{9}$)。
第二行包含一个整数 $b$($0\leq b\leq \min(n,10^{5})$),表示一开始开心的男孩人数,接下来有 $b$ 个不同的整数 $x_{1},x_{2},\cdots ,x_{b}$($0\leq x_{i} < n$),表示开心男孩的编号列表。
第三行包含一个整数 $g$($0\leq g\leq \min(m,10^{5})$),表示一开始开心的女孩人数,接下来有 $g$ 个不同的整数 $y_{1},y_{2},\cdots,y_{g}$($0\leq y_{j} < m$),表示开心女孩的编号列表。
保证至少有一位朋友在初始状态下是不开心的。
输出格式
输出第一个所有朋友都变得开心的天数。如果永远不会全部都开心,输出 $-1$。
说明/提示
定义 $a \bmod k$ 表示整数 $a$ 除以 $k$ 的余数。
在第一个样例中:
- 第 $0$ 天,Drazil 邀请第 $0$ 个男孩和第 $0$ 个女孩。因为第 $0$ 个女孩一开始就是开心的,所以第 $0$ 个男孩这一天也变得开心。
- 第 $1$ 天,Drazil 邀请第 $1$ 个男孩和第 $1$ 个女孩。他们都不开心,所以这一天没有变化。
- 第 $2$ 天,Drazil 邀请第 $0$ 个男孩和第 $2$ 个女孩。因为第 $0$ 个男孩已经开心了,所以他让第 $2$ 个女孩这一天变得开心。
- 第 $3$ 天,Drazil 邀请第 $1$ 个男孩和第 $0$ 个女孩。第 $0$ 个女孩开心,所以她让第 $1$ 个男孩变得开心。
- 第 $4$ 天,Drazil 邀请第 $0$ 个男孩和第 $1$ 个女孩。第 $0$ 个男孩开心,所以他让第 $1$ 个女孩开心。此时,所有朋友都变得开心。
由 ChatGPT 5 翻译