#AG0403009. 区间覆盖

区间覆盖

题目描述

给定两个长度为 nn 的数列 a1,a2,,ana_1, a_2, \ldots, a_nb1,b2,,bnb_1, b_2, \ldots, b_n

接下来有 mm 次操作,操作分为如下两种类型:

  • 1 x y k\mathtt{1\ x\ y\ k}:将数列 bb 中下标从 yy 开始的连续 kk 个元素用数列 aa 中下标从 xx 开始的连续 kk 个数替换,即:byaxb_y \leftarrow a_xby+1ax+1b_{y+1} \leftarrow a_{x+1}by+2ax+2b_{y+2} \leftarrow a_{x+2},……,by+k1ax+k1b_{y+k-1} \leftarrow a_{x+k-1}
  • 2 x\mathtt{2\ x}:查询 bxb_x 的数值。

对于每次查询操作,输出对应的结果。

输入格式

第一行,两个整数 nnmm,分别表示数列长度以及操作次数(1n,m1051 \le n,m \le 10^5)。

第二行,nn 个整数 a1,a2,,an(ai109)a_1, a_2, \ldots, a_n(|a_i| \le 10^9)

第三行,nn 个整数 b1,b2,,bn(bi109)b_1, b_2, \ldots, b_n(|b_i| \le 10^9)

接下来 qq 行,每行包含依次操作,格式为 1 x y k\mathtt{1\ x\ y\ k}1x,y,kn1 \le x,y,k \le nmax{x+k1,y+k1}n\max\{ x+k-1, y+k-1 \} \le n)或 2 x\mathtt{2\ x}1xn1 \le x \le n)。

输出格式

对于每次查询操作 2 x\mathtt{2\ x},输出一行,包含一个整数,表示 bxb_x 的数值。

样例

5 10
1 2 0 -1 3
3 1 5 -2 0
2 5
1 3 3 3
2 5
2 4
2 1
1 2 1 4
2 1
2 4
1 4 2 1
2 2
0
3
-1
3
2
3
-1

说明/提示

数据规模与约定

  • 对于 20%20\% 的数据,n,m10n,m \le 10
  • 对于 50%50\% 的数据,n,m1000n,m \le 1000
  • 对于 100%100\% 的数据,1n,m1051 \le n,m \le 10^5