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 自动生成**