#ATagc063c. [AGC063C] Add Mod Operations

[AGC063C] Add Mod Operations

题目描述

给定两个非负整数序列 A=(A1,,AN)A = (A_1, \ldots, A_N)B=(B1,,BN)B = (B_1, \ldots, B_N)

请判断是否可以通过进行 00 次到 NN 次以下的如下操作,将 AA 变为 BB

  • 操作:选择满足 0x<y10180 \leq x < y \leq 10^{18} 的整数 x,yx, y。对于所有 ii,将 AiA_i 替换为 (Ai+x)mody(A_i + x) \bmod y

如果可以将 AA 变为 BB,请输出一种操作方案。

输入格式

输入通过标准输入给出,格式如下:

NN A1A_1 \ldots ANA_N B1B_1 \ldots BNB_N

输出格式

如果无法通过 00 次到 NN 次以下的操作将 AA 变为 BB,请输出:

No

如果可以,请输出操作方案,格式如下:

Yes KK x1x_1 y1y_1
\vdots
xKx_K yKy_K

其中 KK 表示操作次数,xi,yix_i, y_i 表示第 ii 次操作选择的整数 x,yx, y,需满足:

  • 0KN0 \leq K \leq N
  • 0xi<yi10180 \leq x_i < y_i \leq 10^{18}

如果存在多种满足条件的操作方案,输出任意一种均可。

样例 1

输入

4
7 2 4 5
3 3 5 0

输出

Yes
2
3 5
3 6

样例 2

输入

1
5
3

输出

Yes
1
2 4

样例 3

输入

2
3 1
3 1

输出

Yes
0

样例 4

输入

2
0 0
1 2

输出

No

说明/提示

限制条件

  • 1N10001 \leq N \leq 1000
  • 0Ai1090 \leq A_i \leq 10^9
  • 0Bi1090 \leq B_i \leq 10^9

样例说明 1

可以如下将 AA 变为 BB

  • 初始 A=(7,2,4,5)A = (7, 2, 4, 5)
  • 进行操作 (x,y)=(3,5)(x, y) = (3, 5) 后,A=(0,0,2,3)A = (0, 0, 2, 3)
  • 进行操作 (x,y)=(3,6)(x, y) = (3, 6) 后,A=(3,3,5,0)A = (3, 3, 5, 0)

由 ChatGPT 4.1 翻译