[AGC063C] Add Mod Operations
题意翻译
给定两个长度为 $N$ 的非负整数序列 $A,B$。你需要通过 $0$ 至 $N$ 次以下的操作,使 $A$ 变成 $B$(如果不行,报告无解;否则给出相应构造方案,注意你并不需要最小化操作次数):
- 选择两个整数 $x,y(0\le x<y\le 10^{18})$,对于所有 $1\le i\le N$,使 $A_i\leftarrow(A_i+x)\bmod y$。
翻译自 @[zyc212303](https://www.luogu.com.cn/user/556366)。
题目描述
[problemUrl]: https://atcoder.jp/contests/agc063/tasks/agc063_c
非負整数列 $ 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` と出力してください.
```
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
4
7 2 4 5
3 3 5 0
输出样例 #1
Yes
2
3 5
3 6
输入样例 #2
1
5
3
输出样例 #2
Yes
1
2 4
输入样例 #3
2
3 1
3 1
输出样例 #3
Yes
0
输入样例 #4
2
0 0
1 2
输出样例 #4
No
说明
### 制約
- $ 1\leq\ N\leq\ 1000 $
- $ 0\leq\ A_i\leq\ 10^9 $
- $ 0\leq\ B_i\leq\ 10^9 $
### Sample Explanation 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) $ になります.