CF1681B.Card Trick

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Card Trick

题目描述

Monocarp 刚学会了一个新的纸牌戏法,迫不及待地想向你展示。他向你展示了一副共有 nn 张牌的完整牌堆。你看到从最上面到最下面的牌的点数分别是 a1,a2,,ana_1, a_2, \dots, a_n,并且所有点数都不相同。

接着,他让你对牌堆洗牌 mm 次。第 jj 次洗牌时,你需要将最上面的 bjb_j 张牌拿出,放到剩下的 nbjn-b_j 张牌的下面,且不改变顺序。

然后,Monocarp 用魔法告诉你牌堆最上面的那张牌的点数。然而,你并不相信这个魔法。你告诉他,其实你自己也能知道最上面的那张牌。你能在 Monocarp 展示之前,先说出洗牌 mm 次后最上面那张牌的点数吗?

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn2n2×1052 \le n \le 2 \times 10^5),表示牌堆中的牌数。

第二行包含 nn 个两两不同的整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \le a_i \le n),表示每张牌的点数。

第三行包含一个整数 mm1m2×1051 \le m \le 2 \times 10^5),表示洗牌的次数。

第四行包含 mm 个整数 b1,b2,,bmb_1, b_2, \dots, b_m1bjn11 \le b_j \le n-1),表示第 jj 次洗牌时拿出的牌数。

所有测试用例中 nn 的总和不超过 2×1052 \times 10^5mm 的总和也不超过 2×1052 \times 10^5

输出格式

对于每个测试用例,输出一个整数,表示洗牌 mm 次后,牌堆最上面那张牌的点数。

说明/提示

在第一个测试用例中,每次洗牌实际上交换了两张牌。经过三次交换后,牌堆变为 [2,1][2, 1]

在第二个测试用例中,第二次洗牌抵消了第一次洗牌的效果。第一次将最上面的三张牌放到最后一张牌的下面,第二次又把那张牌放回到剩下三张牌的下面。因此,牌堆保持不变,最上面那张牌的点数为 33

由 ChatGPT 4.1 翻译

样例

3
2
1 2
3
1 1 1
4
3 1 4 2
2
3 1
5
2 1 5 4 3
5
3 2 1 2 1
2
3
3

在线编程 IDE

建议全屏模式获得最佳体验