#200. [R33C]数组加减

[R33C]数组加减

时空限制

1S/512M

题目描述

给定两个长度为 nn 的数组 AABB(下标从 11 开始)。你希望通过若干次操作,使得 AABB 完全相同。

允许执行以下两种基础操作任意次:

  • 操作 11:选择下标 ii1i<n1 \le i < n),将 AiA_i 减少 11Ai+1A_{i+1} 增加 11
  • 操作 22:选择下标 ii1i<n1 \le i < n),将 AiA_i 增加 11Ai+1A_{i+1} 减少 11

接下来你需要处理 qq 次查询。每次查询给出三个参数:type, i, k,表示对当前数组 AA 进行一次修改,然后回答问题。

修改规则如下:

  • type = 1,则将 AiA_i 减少 kkAi+1A_{i+1} 增加 kk
  • type = 2,则将 AiA_i 增加 kkAi+1A_{i+1} 减少 kk

注意:每次查询的修改是永久性的,后续查询基于之前修改后的数组 AA 进行。

在每次查询执行修改后,请输出:将当前数组 AA 变为数组 BB 所需的最少基础操作次数。如果无法达成,则输出 1-1

格式

输入格式

第一行包含两个整数 n,qn, q,分别表示数组的长度和查询的次数。

第二行包含 nn 个整数 A1,A2,,AnA_1, A_2, \dots, A_n,表示数组 AA 的初始值。

第三行包含 nn 个整数 B1,B2,,BnB_1, B_2, \dots, B_n,表示数组 BB 的初始值 。

接下来 qq 行,每行包含三个整数 type, i, k,描述一次查询。具体意义见题目描述。

输出格式

对于每次查询,输出一行。

如果可能使数组 AA 变成数组 BB,则输出一个整数,表示所需的最小基础操作次数。

如果不可能,则输出 1-1

样例

样例输入 #1

3 2
1 2 6
3 3 3
1 1 1
2 2 2

样例输出 #1

6
4

数据规模

对于 50%50\% 的数据,2n,q10002 \leq n ,q\leq 1000

对于 100%100\% 的数据,2n,q2×1052 \leq n, q \leq 2 \times 10^5,查询时的 1i<n1 \leq i < n1Ai,Bi,k1061 \leq A_i, B_i, k \leq 10^6