[厦门小学生 C++ 2025] 数组嵌套大冒险

Luogu
IDLGB4472
Time1000ms
Memory512MB
DifficultyP2
2025字符串(入门)小学活动
在【编程王国】里,有两位魔法师:A 魔法师 和 B 魔法师。他们各自拥有一只神奇的“数字袋子”:A 魔法师的袋子叫 $ a $,B 魔法师的袋子叫 $ b $。 每个袋子里装着 $ n $ 个数,编号从 1 到 $ n $。如果你想知道袋子里第 $ i $ 个数是多少,就可以用魔法指令: - $ a_i $ 表示 A 魔法师袋子里的第 $ i $ 个数; - $ b_i $ 表示 B 魔法师袋子里的第 $ i $ 个数。 有一天,小程序员小 C 发现:这两个魔法袋可以相互嵌套使用! 例如: - 指令 $\tt{ab3}$ 的意思相当于 `a[b[3]]`:先去 B 魔法师的袋子里找到第 $3$ 个数,再把这个数当作钥匙,去 A 魔法师的袋子里取出对应位置的数。 还可以继续嵌套下去,比如:$\tt{abaa15}$ 这其实等价于 `a[b[a[a[15]]]]`。注意,在输入中我们**不使用中括号 `[]`**,而是直接输入字母和数字组成的字符串,且字母在前,数字在后。 现在给定两个魔法袋 $ a $ 和 $ b $,和一条嵌套的魔法指令,请你计算这条指令的最终结果,保证魔法指令有解。 ## Input 输入共四行: 第一行,一个整数 $ n $,表示魔法袋的大小; 第二行,$ n $ 个正整数 $ a_1, a_2, ..., a_n $,分别表示 A 魔法师袋子里的数; 第三行,$ n $ 个正整数 $ b_1, b_2, ..., b_n $,分别表示 B 魔法师袋子里的数; 第四行,一个字符串,包含 $\tt{a}$、$\tt{b}$ 和数字的嵌套指令,不含中括号。 ## Output 输出一个整数,表示魔法指令的最终结果。 [samples] ## Note ### 【样例解释 1】 这条指令相当于 ` a[a[b[4]]] `: - ` b[4] = 3 `; - ` a[b[4]] = a[3] = 1 `; - ` a[a[b[4]]] = a[1] = 2 `。 所以答案是 $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 `。 所以答案是 $6$。 ### 【样例解释 3】 这条指令相当于 ` b[3] `: - ` b[3] = 1 `; 所以答案是 $1$。 ### 【数据范围】 设魔法指令的嵌套层数为 $ m $(例如 $\tt{aab4}$ 的 $ m=3 $)。 对于所有测试数据有:$ 1 \leq n, m \leq 10^5 $。 ::cute-table{tuack} | 测试点 | 特殊性质 A | 特殊性质 B | $ n $ | $ m $ | |:-:|:-:|:-:|:-:|:-:| | $1\sim 6$ | 是 | 否 | $ 1 \leq n, m \leq 10^5 $ | < | | $7\sim 12$ | 否 | 是 | ^ | < | | $13\sim 20$ | 否 | 否 | ^ | < | 特殊性质说明: - 特殊性质 A:嵌套层数为 $1$,且魔法指令中的数字部分长度为 1; - 特殊性质 B:魔法指令中的数字部分长度为 $1$。
Samples
Input #1
4
2 4 1 3
1 2 4 3
aab4
Output #1
2
Input #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
Output #2
6
Input #3
4
1 2 4 3
2 4 1 3
b3
Output #3
1
API Response (JSON)
{
  "problem": {
    "name": "[厦门小学生 C++ 2025] 数组嵌套大冒险",
    "description": {
      "content": "在【编程王国】里,有两位魔法师:A 魔法师 和 B 魔法师。他们各自拥有一只神奇的“数字袋子”:A 魔法师的袋子叫 $ a $,B 魔法师的袋子叫 $ b $。 每个袋子里装着 $ n $ 个数,编号从 1 到 $ n $。如果你想知道袋子里第 $ i $ 个数是多少,就可以用魔法指令: - $ a_i $ 表示 A 魔法师袋子里的第 $ i $ 个数; - $ b_i $ 表示 B 魔法师袋",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB4472"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "在【编程王国】里,有两位魔法师:A 魔法师 和 B 魔法师。他们各自拥有一只神奇的“数字袋子”:A 魔法师的袋子叫 $ a $,B 魔法师的袋子叫 $ b $。\n\n每个袋子里装着 $ n $ 个数,编号从 1 到 $ n $。如果你想知道袋子里第 $ i $ 个数是多少,就可以用魔法指令:\n\n- $ a_i $ 表示 A 魔法师袋子里的第 $ i $ 个数;\n- $ b_i $ 表示 B 魔法师袋...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments