AT_arc198_c [ARC198C] Error Swap
题目描述
[problemUrl]: https://atcoder.jp/contests/arc198/tasks/arc198_c
给定长度为 $ N $ 的两个整数序列 $ A=(A_1,A_2,\dots,A_N) $ 和 $ B=(B_1,B_2,\dots,B_N) $。
你可以执行以下操作最多 $ 31000 $ 次:
- 选择满足 $ 1 \le i < j \le N $ 的整数对 $ (i,j) $,并将 $ A_i $ 替换为 $ A_j - 1 $,$ A_j $ 替换为 $ A_i + 1 $。
你的目标是使 $ A = B $。判断目标是否可以实现,如果可以实现,请输出一个满足条件的操作序列。
输入格式
输入通过标准输入给出,格式如下:
> $ N $
> $ A_1\ A_2\ \dots\ A_N $
> $ B_1\ B_2\ \dots\ B_N $
输出格式
如果可以使 $ A = B $,则输出 `Yes`,否则输出 `No`。
此外,如果输出 `Yes`,还需按照以下格式输出操作序列:
> $ M $
> $ i_1\ j_1 $
> $ i_2\ j_2 $
> $ \vdots $
> $ i_M\ j_M $
其中,$ M $ 表示操作序列的长度,需满足 $ 0 \le M \le 31000 $。$ i_k, j_k $ 表示第 $ k $ 次操作选择的 $ i, j $,需满足 $ 1 \le i_k < j_k \le N $。
如果存在多个解,输出任意一个均可。
说明/提示
### 约束条件
- $ 2 \le N \le 100 $
- $ 1 \le A_i, B_i \le 100 $
### 样例解释 #1
通过以下操作可以使 $ A = B $:
- 选择 $ (i,j) = (1,4) $,此时 $ A = (3,2,1,3) $。
- 选择 $ (i,j) = (3,4) $,此时 $ A = (3,2,2,2) $。
由于不需要最小化操作次数,以下输出也是正确的:
```
Yes
6
1 4
3 4
1 2
1 2
1 2
1 2
```
翻译由 DeepSeek V3 完成