#B4472. [厦门小学生 C++ 2025] 数组嵌套大冒险
[厦门小学生 C++ 2025] 数组嵌套大冒险
题目描述
在【编程王国】里,有两位魔法师:A 魔法师 和 B 魔法师。他们各自拥有一只神奇的“数字袋子”:A 魔法师的袋子叫 ,B 魔法师的袋子叫 。
每个袋子里装着 个数,编号从 1 到 。如果你想知道袋子里第 个数是多少,就可以用魔法指令:
- 表示 A 魔法师袋子里的第 个数;
- 表示 B 魔法师袋子里的第 个数。
有一天,小程序员小 C 发现:这两个魔法袋可以相互嵌套使用!
例如:
- 指令 的意思相当于
a[b[3]]:先去 B 魔法师的袋子里找到第 个数,再把这个数当作钥匙,去 A 魔法师的袋子里取出对应位置的数。
还可以继续嵌套下去,比如:
这其实等价于 a[b[a[a[15]]]]。注意,在输入中我们不使用中括号 [],而是直接输入字母和数字组成的字符串,且字母在前,数字在后。
现在给定两个魔法袋 和 ,和一条嵌套的魔法指令,请你计算这条指令的最终结果,保证魔法指令有解。
输入格式
输入共四行:
第一行,一个整数 ,表示魔法袋的大小;
第二行, 个正整数 ,分别表示 A 魔法师袋子里的数;
第三行, 个正整数 ,分别表示 B 魔法师袋子里的数;
第四行,一个字符串,包含 、 和数字的嵌套指令,不含中括号。
输出格式
输出一个整数,表示魔法指令的最终结果。
4
2 4 1 3
1 2 4 3
aab4
2
12
3 6 6 4 3 3 8 1 9 11 12 5
6 8 3 2 9 1 10 5 12 4 11 7
abbaa12
6
4
1 2 4 3
2 4 1 3
b3
1
提示
【样例解释 1】
这条指令相当于 a[a[b[4]]]:
b[4] = 3;a[b[4]] = a[3] = 1;a[a[b[4]]] = a[1] = 2。
所以答案是 。
【样例解释 2】
这条指令相当于 a[b[b[a[a[12]]]]]:
a[12] = 5;a[a[12]] = a[5] = 3;b[a[a[12]]] = b[3] = 3;b[b[a[a[12]]]] = b[3] = 3;a[b[b[a[a[12]]]]] = a[3] = 6。
所以答案是 。
【样例解释 3】
这条指令相当于 b[3]:
b[3] = 1;
所以答案是 。
【数据范围】
设魔法指令的嵌套层数为 (例如 的 )。
对于所有测试数据有:。
::cute-table{tuack}
| 测试点 | 特殊性质 A | 特殊性质 B | ||
|---|---|---|---|---|
| 是 | 否 | < | ||
| 否 | 是 | ^ | ||
| 否 |
特殊性质说明:
- 特殊性质 A:嵌套层数为 ,且魔法指令中的数字部分长度为 1;
- 特殊性质 B:魔法指令中的数字部分长度为 。