AT_iroha2019_day4_i ピンチ

题目描述

炸弹拥有 $N$ 个端子。两个端子之间有且仅有一条导线,并且电流只能沿某个特定方向流动(也就是说,炸弹在拓补上是一个完全图,各边有特定的方向)。需要注意的是**这些方向在输入中并不会给出**。每条导线都有一个开关,默认为关闭状态。我们需要按照以下步骤来拆除炸弹: - 指定需要解除的端子数量 $K$。 - 指定 $K$ 个不同的端子编号 $A_1, A_2, \cdots, A_K$,并按顺序依次解除它们。 - 所有 $1 \leq i < K$ 的情况下,$A_i$ 和 $A_{i+1}$ 之间的导线流向必须是 $A_i \rightarrow A_{i+1}$。 你的任务是通过多次以下两种查询操作,找出一个有效的解除顺序 $K, A_i$: - 「切换」:指定两个端子 $U_i, V_i$,切换它们之间的导线的状态。如果开启的导线数量超过 $2N$ 条,炸弹会立即爆炸。 - 「检测」:查询是否存在从 $U_i$ 到 $V_i$ 的路径,仅能通过当前开启的导线传输电流。如果可以传输,返回 `Y`,否则返回 `N`。 满足以下任一条件时,炸弹会爆炸,且你的方案将被视为错误: - 查询或答案无效。 - 超过 $666666$ 次「切换」操作。 - 超过 $10000$ 次「检测」操作。 - 开启的导线超过 $2N$ 条。 - 存在一个方案可以解除更多的端子。

输入格式

首先,从标准输入读取一个整数 $N$: > $ N $ 接下来,可以执行多次「切换」和「检测」查询。每次查询要按照以下格式输出: 「切换」查询: > 1 $ U_i $ $ V_i $ 其中 $1 \leq U_i, V_i \leq N$,且 $U_i \neq V_i$。 「检测」查询: > 2 $ U_i $ $ V_i $ 其中 $1 \leq U_i, V_i \leq N$,且 $U_i \neq V_i$。此查询之后,标准输入会返回一个如下格式的答案: ``` ans ``` 其中,$ans$ 为 `Y` 或 `N`。 最后,输出答案,格式如下: > 0 $ K $ 0 $ A_1 $ $ A_2 $ $\cdots$ $ A_K $ 随后程序必须立即终止。

输出格式

说明/提示

- $2 \leq N \leq 800$ ### 注意事项 - 在每次输出后,一定要刷新标准输出,以防止程序超时。 - 输出答案后,程序应立即结束。如果输出错误或程序运行异常,行为结果是不确定的。 ### 样例 在这个示例中,$N = 3$,电流的方向为 $1 \rightarrow 2, 2 \rightarrow 3, 3 \rightarrow 1$。输出的方案是 $K = 3, A_i = 3 \rightarrow 1 \rightarrow 2$。 输入和输出示例如下: ``` 输入: 3 输出: 1 2 3 1 1 3 2 3 1 Y 2 2 1 Y 2 3 2 N 1 1 2 2 3 2 Y 0 3 0 3 1 2 ``` **本翻译由 AI 自动生成**