CF1346G Two IP Cameras
题目描述
你有两台相同型号的 IP 摄像头。每台摄像头都可以从某一时刻开始以固定的周期拍照。你可以自由选择开始拍照的时刻,但周期只能从厂家预设的 $k$ 个值 $p_1, p_2, \dots, p_k$ 中选择。
你有 $n$ 个感兴趣的时刻 $x_1, x_2, \dots, x_n$。你希望配置这两台摄像头,使得对于每一个感兴趣的时刻,至少有一台摄像头会在该时刻拍照。配置摄像头即为设置其第一次拍照的时刻和两次连续拍照之间的间隔(周期,必须为 $p_1, p_2, \dots, p_k$ 中的一个)。摄像头在其他时刻拍照不会对你造成困扰——你只关心感兴趣的时刻。
输入格式
第一行包含两个整数 $k$ 和 $n$($1 \le k \le 10^5$,$2 \le n \le 10^5$),分别表示可选周期的数量和感兴趣时刻的数量。
第二行包含 $k$ 个整数 $p_1, p_2, \dots, p_k$($1 \le p_1 < p_2 < \dots < p_k \le 10^6$),表示可选的周期,按升序排列。
第三行包含 $n$ 个整数 $x_1, x_2, \dots, x_n$($1 \le x_1 < x_2 < \dots < x_n \le 10^6$),表示感兴趣的时刻,按升序排列。
输出格式
如果存在一种配置方式,请在第一行输出 YES(大小写均可)。
第二行输出两个整数 $s_1$ 和 $cp_1$($1 \le s_1 \le 10^6$,$1 \le cp_1 \le 10^6$,$cp_1 \in \{p_1, \dots, p_k\}$),分别表示第一台摄像头的起始时刻和周期。周期必须为给定的周期之一。
第三行输出两个整数 $s_2$ 和 $cp_2$($1 \le s_2 \le 10^6$,$1 \le cp_2 \le 10^6$,$cp_2 \in \{p_1, \dots, p_k\}$),分别表示第二台摄像头的起始时刻和周期。周期必须为给定的周期之一。
如果无法配置摄像头,请输出 NO(大小写均可)。如果有多种方案,可以输出任意一种。
说明/提示
由 ChatGPT 4.1 翻译