CF2134E Power Boxes

题目描述

这是一个交互题。 你有 $n$ 个盒子,编号从 $1$ 到 $n$。这些盒子外观完全相同,但每个盒子有一个隐藏的力量值 $a_i$,其取值为 $1$ 或 $2$。 你需要确定每个盒子的力量值。为此,你可以进行如下实验:最初,第 $i$ 个盒子被放置在数轴上的坐标 $i$ 处($1 \le i \le n$)。 你可以进行以下两种类型的操作: - “swap $x$” ($1 \le x \le n - 1$):交换当前位于坐标 $x$ 和 $x + 1$ 的两个盒子。注意,这个变化是永久的,会影响之后所有的操作。 - “throw $x$” ($1 \le x \le n$):向当前位于坐标 $x$ 的盒子扔一个球。如果该盒子的力量值为 $p$,球会向前跳 $p$ 个单位,落到坐标 $x + p$(如果那里有盒子,球会继续根据该盒子的力量跳跃)。如此反复,直到球落到没有盒子的坐标为止。作为回应,你会得到球在停止前一共跳跃了多少次。 你的任务是在不超过 $\left\lceil \frac{3n}{2} \right\rceil$ 次操作(包含 swap 和 throw 总数)的前提下,确定每个盒子的力量值。

输入格式

每个测试点包含多个测试用例。第一行包含测试用例数 $t$($1 \le t \le 500$)。每个测试用例的描述如下: 每个测试用例的第一行包含一个整数 $n$($2 \le n \le 1000$),表示盒子的数量。 保证所有测试用例中 $n$ 的总和不超过 $1000$。

输出格式

(本题为交互题,具体交互格式参见题目描述与提示。输入和输出请结合判题器的交互接口实现。)

说明/提示

以下为示例交互过程: SolutionJuryExplanation2有 $2$ 组测试数据。4第一组测试数据有 $4$ 个盒子,隐藏的力量值为 $a = [2,1,2,1]$。 throw 2 在坐标 $2$ 的盒子扔一个球。球会经过 $2 \to 3 \to 5$,在 $5$ 坐标停止,因此返回 $2$。 swap 3 交换坐标 $3$ 和 $4$ 上的盒子。现在第 $3$ 个盒子在坐标 $4$,第 $4$ 个盒子在坐标 $3$。 throw 2 在坐标 $2$ 的盒子再扔一个球,球经过 $2 \to 3 \to 4 \to 6$,在 $6$ 坐标停止,返回 $3$。注意由于交换,返回值变化了。 throw 1 在坐标 $1$ 的盒子扔一个球,球经过 $1 \to 3 \to 4 \to 6$,最终停在 $6$,返回 $3$。 ! 2 1 2 1 最终得到的结果为 $[2,1,2,1]$。 2第二组测试数据有 $2$ 个盒子,隐藏力量值为 $a = [1,2]$。 throw 1 在坐标 $1$ 的盒子扔一个球,球经过 $1 \to 2 \to 4$,返回 $2$。 swap 1 交换坐标 $1$ 和 $2$ 上的盒子。现在第 $1$ 个盒子在坐标 $2$,第 $2$ 个盒子在坐标 $1$。 throw 1 在坐标 $1$ 的盒子扔一个球,球直接跳到 $3$,返回 $1$。 ! 1 2 最后答案为 $[1,2]$。 (示例输入输出中的空行仅为排版清晰,你的程序输出时不需要输出这些空行。) 注意,在第一个样例中,所给的操作实际上并无法唯一确定所有盒子的力量值,仅用于说明输入输出格式。 由 ChatGPT 5 翻译