AT_xmascontest2015_e Esolang?
题目描述
在一个场地上,有 $N$ 个兔子小屋和 $M$ 只兔子。每个兔子小屋的编号从 $1$ 到 $N$,而每一只兔子也有一个编号,从 $1$ 到 $M$。
你需要处理 $Q$ 个查询,具体如下:
- 类型 $1$:让编号为 $Y$ 的兔子进入编号为 $X$ 的兔子小屋。
- 类型 $2$:查找编号为 $X$ 的兔子小屋中,按照它们进入的顺序,第 $Y$ 个进入的兔子编号。
你的任务是基于给定的编程语言规范,编写程序来处理这些查询,需要提交分别用于初始化、处理类型 $1$ 查询和处理类型 $2$ 查询的代码。程序提交时需遵循特定的输出格式。
此外,程序中涉及到的非终结符 `expr` 的调用次数不能超过一个给定的常数 $L$。
输入格式
格式如下(程序会将这些值直接传递给你的代码,因此这里提供的只是参考):
> $N$ $M$ $Q$ $L$
> $T_1$ $X_1$ $Y_1$
> $T_2$ $X_2$ $Y_2$
> ...
> $T_Q$ $X_Q$ $Y_Q$
- 第一行包含数据:兔子小屋的数量 $N$,兔子的数量 $M$,查询的数量 $Q$,以及一个限制常数 $L$。
- 接下来的 $Q$ 行,每行描述一个查询。第 $i$ 行($1 \leq i \leq Q$)包含三个整数 $T_i, X_i, Y_i$,表示查询的类型和参数。
- 保证类型 $1$ 的查询中没有同一只兔子同时进入多个小屋的情况。
- 保证类型 $2$ 的查询总能找到答案。
输出格式
输出时,你需要按照以下格式输出基于给定语言和规则所编写的程序源码:
```
初始化处理 ---- 类型 1 的查询处理 ---- 类型 2 的查询处理
```
用 "----" 进行三个部分的分隔。每一部分至少需要有一条指令,不能完全为空。
**注意**:程序中不应包含任何多字节字符(如中文字符),即使本地环境能正常跑,也可能在评测程序中出错。
说明/提示
官方提供了一个 JavaScript 版的语言解释器,定义了语言的详细规范。这个语言有一些独特的特点,比如:
- 内存中只有一个长度为 $10000$ 的数组 `a`,每个元素只能是 $[0,9999]$ 范围内的整数。通过 `a[i]` 访问第 $i$ 个元素。对于类型 $2$ 的查询,可以使用变量 $A` 来存储结果。
- 使用的常量也在 $[0,9999]` 之间。所有计算结果也需在这个范围内,否则会报错。
- 仅能使用「赋值」、「加法、减法」和「特定形式的循环」三个功能。
评分过程中,如果代码的语法不符合定义的 BNF 或在运行时产生错误,程序将被判为不正确。如果调用 `expr` 非终结符的次数超过常数 $L`,则会显示 "QLE",同样视作不正确。
## 示例说明
初始时,每个兔子小屋还没有兔子。输入例如:
```
10 5 8 54
1 1 5
2 1 1
1 10 4
1 10 2
1 10 3
2 10 1
2 10 2
2 10 3
```
对于上述例子,每个查询的操作结果如下:
- 查询 1:编号 5 的兔子进入兔子小屋 1。
- 查询 2:查询兔子小屋 1 的第 1 个兔子,结果是编号 5。
- 查询 3:编号 4 的兔子进入兔子小屋 10。
- 查询 4:编号 2 的兔子进入兔子小屋 10。
- 查询 5:编号 3 的兔子进入兔子小屋 10。
- 查询 6:查询兔子小屋 10 的第 1 个兔子,结果是编号 4。
- 查询 7:查询兔子小屋 10 的第 2 个兔子,结果是编号 2。
- 查询 8:查询兔子小屋 10 的第 3 个兔子,结果是编号 3。
**本翻译由 AI 自动生成**