AT_agc063_c.[AGC063C] Add Mod Operations

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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

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

  • 操作:选择满足 0≤x<y≤10180 \leq x < y \leq 10^{18} 的整数 x,yx, y。对于所有 ii,将 AiA_i 替换为 (Ai+x) mod y(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,需满足:

  • 0≤K≤N0 \leq K \leq N
  • 0≤xi<yi≤10180 \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≤N≤10001 \leq N \leq 1000
  • 0≤Ai≤1090 \leq A_i \leq 10^9
  • 0≤Bi≤1090 \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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页