{"problem":{"name":"[THUPC 2024 初赛] 机器人","description":{"content":"有 $n$ 个机器人围成一圈，编号按照逆时针顺序分别为 $0\\sim n-1$。 每个机器人有两只手。编号为 $i$ 的机器人初始「左手」指向编号 $l_i$ 的机器人，「右手」指向编号 $r_i$ 的机器人。 所有的机器人内部都写有 $m$ 行「指令」，「指令」有以下这些形式： ### 指令 「指令」分为「基础指令」和「高级指令」两种。「高级指令」的功能会更复杂一些，但它们本质上没有多大","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":524288},"difficulty":{"LuoguStyle":"P6"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP9966"},"statements":[{"statement_type":"Markdown","content":"有 $n$ 个机器人围成一圈，编号按照逆时针顺序分别为 $0\\sim n-1$。\n\n每个机器人有两只手。编号为 $i$ 的机器人初始「左手」指向编号 $l_i$ 的机器人，「右手」指向编号 $r_i$ 的机器人。\n\n所有的机器人内部都写有 $m$ 行「指令」，「指令」有以下这些形式：\n\n### 指令\n\n「指令」分为「基础指令」和「高级指令」两种。「高级指令」的功能会更复杂一些，但它们本质上没有多大区别。下面介绍这些「指令」的格式以及它们被「执行」时的效果。文中的“自己”一词均指拥有这条「指令」的机器人。\n\n#### 基础指令\n\n- `SLACKOFF`：**「摸鱼」**，即什么也不做。\n- `MOVE h z`：将第 $h$ 只手向逆时针方向 **「移动」** $z$ 个机器人的位置。当 $h=0$ 时表示「左手」，当 $h=1$ 时表示「右手」，下同。\n- `SWAP h x y`：将第 $h$ 只手指向的机器人的第 $x$ 行「指令」与自己的第 $y$ 行「指令」 **「对调」**。\n- `MIRROR h x`：将第 $h$ 只手指向的机器人的第 $x$ 行「指令」**「镜像」** 取反，即将「指令」中的 $h$ 取反（$0$ 变成 $1$，$1$ 变成 $0$）。特殊地，它对 `SLACKOFF` 指令没有效果；而对 `TRIGGER` 指令，会直接修改「触发」时「执行」的「指令」中的 $h$。\n- `REPLACE h x <COMMAND>`：将第 $h$ 只手指向的机器人的第 $x$ 行「指令」**「替换」** 为 `<COMMAND>`。其中 `<COMMAND>` 为一条完整的「指令」。\n\n#### 高级指令 \n\n- `ACTIVATE h`：**「激活」** 第 $h$ 只手指向的机器人，即按顺序「执行」那个机器人的所有「指令」。前一行「指令」「执行」完毕之后才会「执行」后一行。注意在「执行」前面的「指令」时后面的「指令」可能会发生更改，这时需要「执行」更改后的「指令」。当那个机器人的所有「指令」「执行」完毕后，该「指令」才算「执行」完毕。\n\n- `TRIGGER <COMMANDNAME>: <COMMAND>`：其中 `<COMMANDNAME>` 表示「指令」的名称，即一条「指令」中的第一个全大写单词；`<COMMAND>` 表示一条完整的「基础指令」。`TRIGGER` 指令不会被「执行」，即按顺序「执行」时会跳过该「指令」。但是，当一个 **其他** 机器人「执行」完一条「指令」之后，且「右手」指向自己的时候，自己最靠前的满足如下条件的 `TRIGGER` 指令（如果有）就会被 **「触发」**——「执行」一次对应的 `<COMMAND>`：\n\n  - `<COMMANDNAME>` 不为 `TRIGGER` 时，刚刚「执行」完毕的「指令」为 `<COMMANDNAME>` 指令；\n  - `<COMMANDNAME>` 为 `TRIGGER` 时，刚刚「执行」完毕的「指令」是 `TRIGGER` 指令被「触发」时「执行」的「指令」。\n\n  「执行」完毕后会回到原来的「执行」顺序中。\n\n你需要从 $0$ 号机器人开始按照编号顺序一圈又一圈地「激活」这些机器人，并输出「执行」的前 $k$ 条指令的有关信息。\n\n## Input\n\n第一行三个正整数 $n,m,k$。\n\n接下来按照编号从小到大的顺序表示 $n$ 个机器人的信息。\n\n对于每个机器人，第一行两个非负整数 $l_i,r_i$ 表示「左手」指向的机器人编号和「右手」指向的机器人编号。\n\n接下来 $m$ 行，按顺序表示机器人的「指令」，「指令」的格式见题目描述。\n\n## Output\n\n输出 $k$ 行，按顺序描述前 $k$ 条开始「执行」的指令的相关信息，在开始「执行」前输出，每条一行，格式如下：\n\n- 「摸鱼」时输出 `Robot <id> slacks off.`。其中 `<id>` 为一个整数，表示「执行」当前「指令」的机器人编号，下同。\n- 「移动」时输出 `Robot <id> moves its <side> hand towards Robot <id2>.`。其中 `<side>` 为 `left` 或 `right`，表示移动了哪只手（`left` 表示「左手」，`right` 表示「右手」）；`<id2>` 为一个整数，表示移动之后这只手指向的机器人的编号。\n- 「对调」时输出 `Robot <id> swaps a line of command with Robot <id2>.`。其中 `<id2>` 为一个整数，表示与之「对调」「指令」的机器人编号。\n- 「镜像」取反时输出 `Robot <id> modifies a line of command of Robot <id2>.`。其中 `<id2>` 为一个整数，表示被「镜像」取反「指令」的机器人编号。\n- 「替换」时输出 `Robot <id> replaces a line of command of Robot <id2>.`。其中 `<id2>` 为一个整数，表示被「替换」「指令」的机器人编号。\n- 「执行」 `ACTIVATE` 指令「激活」（区别于你的一圈又一圈的「激活」）时输出 `Robot <id> activates Robot <id2>.`。其中  `<id2>` 为一个整数，表示被「激活」的机器人编号。\n- `TRIGGER` 指令由于不会被「执行」就不需要输出，但当它们被「触发」时，仍然需要按照上面的格式输出对应的「基础指令」被「执行」的信息。\n\n[samples]\n\n## Note\n\n### 样例 \\#1 解释\n\n`TRIGGER` 指令的「触发」时机是「执行」完毕之后。注意不能「触发」自己的 `TRIGGER` 指令。\n\n### 样例 \\#2 解释\n\n注意在「执行」前面的「指令」时后面的「指令」可能会发生更改，这时需要「执行」更改后的「指令」。\n\n### 样例 \\#3 解释\n\n`ACTIVATE` 指令「激活」另一个机器人时，当那个机器人的所有「指令」「执行」完毕后，该「指令」才算「执行」完毕。\n\n### 样例 \\#4 解释\n\n只有自己最靠前的满足条件的 `TRIGGER` 指令才会被 **「触发」**。\n\n### 样例 \\#5 解释\n\n无私的馈赠？有力的援助？\n\n### 子任务\n\n保证所有的指令的格式均正确。\n\n保证输入文件的长度不超过 $5\\mathtt{MB}$。\n\n保证能够「执行」至少 $k$ 条「指令」。\n\n保证 $2\\le n\\le 100$，$1\\le m \\le 10$，$1\\le k \\le 3\\times 10^5$。\n\n保证 $0\\le l_i,r_i<n$。\n\n保证 $0\\le h \\le 1$，$1\\le x,y \\le m$，$1\\le z<n$。所有输入的数都是整数。\n\n### 题目使用协议\n\n来自 THUPC2024（2024年清华大学学生程序设计竞赛暨高校邀请赛）初赛。\n\n以下『本仓库』皆指 THUPC2024 初赛 官方仓库（[https://github.com/ckw20/thupc2024_pre_public](https://github.com/ckw20/thupc2024_pre_public)）\n\n1. 任何单位或个人都可以免费使用或转载本仓库的题目；\n\n2. 任何单位或个人在使用本仓库题目时，应做到无偿、公开，严禁使用这些题目盈利或给这些题目添加特殊权限；\n\n3. 如果条件允许，请在使用本仓库题目时同时提供数据、标程、题解等资源的获取方法；否则，请附上本仓库的 github 地址。","is_translate":false,"language":"English"}],"meta":{"iden":"LGP9966","tags":["模拟","2024","THUPC"],"sample_group":[["2 2 5\n0 0\nMOVE 1 1\nMOVE 0 1\n0 1\nTRIGGER MOVE: MOVE 0 1\nSLACKOFF\n","Robot 0 moves its right hand towards Robot 1.\nRobot 1 moves its left hand towards Robot 1.\nRobot 0 moves its left hand towards Robot 1.\nRobot 1 moves its left hand towards Robot 0.\nRobot 1 slacks off.\n"],["2 2 4\n0 1\nACTIVATE 1\nSLACKOFF\n0 1\nSWAP 0 2 2\nMIRROR 0 1\n","Robot 0 activates Robot 1.\nRobot 1 swaps a line of command with Robot 0.\nRobot 1 slacks off.\nRobot 0 modifies a line of command of Robot 0.\n"],["3 2 6\n1 2\nACTIVATE 0\nACTIVATE 0\n2 1\nSWAP 0 2 2\nTRIGGER ACTIVATE: REPLACE 0 2 SLACKOFF\n0 1\nTRIGGER MIRROR: SLACKOFF\nSLACKOFF\n","Robot 0 activates Robot 1.\nRobot 1 swaps a line of command with Robot 2.\nRobot 1 slacks off.\nRobot 2 replaces a line of command of Robot 0.\nRobot 0 slacks off.\nRobot 1 swaps a line of command with Robot 2.\n"],["3 2 8\n0 1\nSLACKOFF\nTRIGGER MOVE: SLACKOFF\n1 2\nTRIGGER TRIGGER: SLACKOFF\nTRIGGER SLACKOFF: MOVE 0 1\n2 0\nTRIGGER SLACKOFF: MOVE 1 2\nTRIGGER TRIGGER: MOVE 1 1\n","Robot 0 slacks off.\nRobot 1 moves its left hand towards Robot 2.\nRobot 2 moves its right hand towards Robot 1.\nRobot 1 slacks off.\nRobot 2 moves its right hand towards Robot 0.\nRobot 0 slacks off.\nRobot 1 slacks off.\nRobot 2 moves its right hand towards Robot 2.\n"],["见附加文件的 5.in。","见附加文件的 5.ans。"]],"created_at":"2026-03-03 11:09:25"}}