AT_agc063_c [AGC063C] Add Mod Operations

题目描述

给定两个非负整数序列 $A = (A_1, \ldots, A_N)$ 和 $B = (B_1, \ldots, B_N)$。 请判断是否可以通过进行 $0$ 次到 $N$ 次以下的如下操作,将 $A$ 变为 $B$。 - 操作:选择满足 $0 \leq x < y \leq 10^{18}$ 的整数 $x, y$。对于所有 $i$,将 $A_i$ 替换为 $(A_i + x) \bmod y$。 如果可以将 $A$ 变为 $B$,请输出一种操作方案。

输入格式

输入通过标准输入给出,格式如下: > $N$ $A_1$ $\ldots$ $A_N$ $B_1$ $\ldots$ $B_N$

输出格式

如果无法通过 $0$ 次到 $N$ 次以下的操作将 $A$ 变为 $B$,请输出: ``` No ``` 如果可以,请输出操作方案,格式如下: > Yes $K$ $x_1$ $y_1$ > $\vdots$ > $x_K$ $y_K$ 其中 $K$ 表示操作次数,$x_i, y_i$ 表示第 $i$ 次操作选择的整数 $x, y$,需满足: - $0 \leq K \leq N$ - $0 \leq x_i < y_i \leq 10^{18}$ 如果存在多种满足条件的操作方案,输出任意一种均可。

说明/提示

### 限制条件 - $1 \leq N \leq 1000$ - $0 \leq A_i \leq 10^9$ - $0 \leq B_i \leq 10^9$ ### 样例说明 1 可以如下将 $A$ 变为 $B$: - 初始 $A = (7, 2, 4, 5)$。 - 进行操作 $(x, y) = (3, 5)$ 后,$A = (0, 0, 2, 3)$。 - 进行操作 $(x, y) = (3, 6)$ 后,$A = (3, 3, 5, 0)$。 由 ChatGPT 4.1 翻译