编程题
### 问题描述 小桥最终还是抓到了小蓝,但是他还是有一颗仁慈之心,他给了小蓝一次机会。 只要能够回答这个问题,那么小桥就不会给小蓝一万道数学题来折磨小蓝,而是会大发慈悲放他一马。 问题是这样的,小桥拿出了 $n$ 颗糖果,编号 $1 \sim n$。每颗糖果都有自己的种类,共有 $k$ 种不同的种类,编号 $1 \sim k$,小桥规定第 $i$ 种糖果不能取超过 $s_i$ 颗。每次小桥询问一个区间 $[l, r]$,代表小蓝需要在糖果编号在 $[l, r]$ 的区间中取糖果,请问小蓝最多能取多少颗糖果。 为了验证小蓝不是蒙出来的答案,小桥会询问 $m$ 次。 小蓝当然不会,于是又来求助你了。你需要回答小桥的所有问题。 ### 输入格式 第一行输入三个整数 $n, k, m$。($1 \le n, k, m \le 10^5$)。 第二行输入 $n$ 个整数 $p_1, p_2, p_3, ..., p_n$,代表每个糖果的种类。($1 \le p_i \le k$)。 第三行输入 $k$ 个整数 $s_1, s_2, s_3, ..., s_k$,代表每种糖果的限制。($0 \le s_i \le n$)。 接下来 $m$,每行输入两个整数 $t_i, x_i$,代表每次询问区间的特殊值,我们定义 $l = (t_i \otimes ans_{last}), r = (x_i \otimes ans_{last})$。询问的区间为 $[l, r]$。($1 \le l \le r \le n$)。 $ans_{last}$ 为上一个询问的答案,初始的值为 $0$,$\otimes$ 代表按位异或。 ### 输出格式 输出 $m$ 个整数,每行一个整数,代表询问的答案。 ### 样例输入 ```bash 6 2 3 1 2 1 2 1 1 2 1 1 2 0 4 6 5 ``` ### 样例输出 ```bash 2 3 2 ``` ### 说明 询问区间为:$[1,2],[2,6],[5,6]$。 询问为 $[1,2]$ 时,由于 $1,2$ 号糖果都只有一个,所以答案为 $2$。 询问为 $[2,6]$ 时,由于 $1,2$ 号糖果分别为 $3, 2$ 个,但是限制 $1$ 类有最多有 $2$ 个,$2$ 类最多只能 $1$ 个,所以答案为 $3$。 询问为 $[5,6]$ 时,由于 $1$ 号糖果只有两个,所以答案为 $2$。
查看答案
赣ICP备20007335号-2