QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 256 MB Puntuación total: 100 Interactivo

#11121. 操控宇宙飞船

Estadísticas

这是一个交互式问题。

Wedge Antilles 潜入了一艘新的秘密帝国飞船,该飞船使用 $N$ 维超空间在银河系中穿梭,速度比任何其他飞船都要快。幸运的是,现在船上没有人,但飞船正以某种方向高速行驶!

飞船使用 $N$ 个选择器来控制速度,每个选择器都可以设置在 $M$ 个位置中的一个。第 $i$ 个选择器对应于第 $i$ 个方向 $X_i$,其中 $X_i$ 是一个 $N$ 维向量;当它被设置为第 $j$ 个位置时,向量 $K_{ij} \cdot X_i$ 会被加到飞船的总速度中。这里,$K_{ij}$ 是一个整数,被称为第 $i$ 个选择器上第 $j$ 档的传输系数。因此,飞船的总速度是一个 $N$ 维向量,定义为 $S = \sum_{i=1}^{N} K_{ig_i} X_i$,其中 $g_i$ 是第 $i$ 个选择器所设置的位置。

Wedge 知道,为了使飞船驾驶方便,任何飞船(包括这一艘)的方向和传输系数都满足一些额外的约束。首先,方向的选择方式使得对于任何期望的 $N$ 维速度向量 $S$,都可以选择系数 $c_i$ 使得 $S = \sum_{i=1}^{N} c_i X_i$(注意 $c_i$ 可能等于也可能不等于任何 $K_{ij}$)。此外,对于 $j < t$,总有 $K_{ij} < K_{it}$。最后但同样重要的是,对于每个选择器,其中一个传输系数等于零。

正如我们已经提到的,飞船现在正通过超空间向某个方向移动,而 Wedge 不知道这些方向和传输系数。他想要让飞船停下来。为了做到这一点,他需要为每个选择器找到合适的位置,使得总速度 $S$ 等于零。他现在唯一能做的就是将每个选择器设置为某个位置(即为每个 $i$ 选择 $g_i$)并计算所得的速度。

你的程序必须扮演 Wedge 的角色并选择每个选择器的位置。评测程序会告诉你的程序所得的速度。由于 Wedge 时间有限,你最多只能进行 120 次查询。

交互

首先,你的程序将获得两个整数 $N$ 和 $M$ ($1 \le N, M \le 100$)。之后,你的程序必须确定每个选择器的位置,以产生零速度。

虽然在现实世界中飞船速度极快,但其超空间速度非常有限。Wedge 知道所有传输系数和方向分量的绝对值都不超过 1000。

进行查询时,程序必须打印一个问号(“?”),一个空格,然后是 $N$ 个由空格分隔的整数 $g_1, g_2, \dots, g_N$。每个数字必须在 $1$ 到 $M$ 的范围内。这意味着 Wedge 将第一个选择器设置为位置 $g_1$,第二个选择器设置为位置 $g_2$,依此类推。然后你的程序必须读取 $N$ 个整数:所得速度向量 $S$ 的坐标。

当你的程序准备好打印答案时,它必须打印英文字母“A”,一个空格,然后是 $N$ 个由空格分隔的整数 $g_1, g_2, \dots, g_N$。之后,你的程序必须立即退出。

不要忘记在每次查询后刷新输出。

请注意:如果对于某次查询,你的程序收到的第一个整数是 $987654321$,则意味着你的解法错误,你的程序必须立即退出。在这种情况下,你可能会收到相应的判决(“Wrong Answer”、“Presentation Error”等)。如果你的程序在这种情况下没有退出,你很可能会收到一个随机的判决,而不是实际发生的情况。

样例

输入 1

2 2
0 -1
2 0
0 0

输出 1

? 1 1
? 2 2
? 1 2
A 1 2

输入 2

2 3
0 -2
200 0
0 -1

输出 2

? 1 1
? 3 3
? 1 2
A 1 3

说明

在第一个样例中,有两个选择器,每个选择器有两个位置。方向如下:$X_1 = (1, 0), X_2 = (0, 1)$。第一个选择器的传输系数为 $K_{11} = 0, K_{12} = 2$,第二个选择器的传输系数为 $K_{21} = -1, K_{22} = 0$。因此,为了达到零速度,Wedge 需要将第一个选择器设置在第一个位置,将第二个选择器设置在第二个位置。

在第二个样例中,同样有两个选择器,但现在每个选择器有三个不同的位置。方向和传输系数如下: $X_1 = (1, 0), X_2 = (0, 1)$; $K_{11} = 0, K_{12} = 100, K_{13} = 200$; $K_{21} = -2, K_{22} = -1, K_{23} = 0$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.