Statement
这是一道交互题。
你在打完 WA2 后感慨万分,决定下一个双女主 galgame 要打出单女主的满好感结局。
这个 gal 可以抽象为 $n$ 个重要事件,每两个事件之间都有关联,可以看作一张完全图。
由于这个 galgame 很神秘,$n$ 个事件发生顺序是由你决定的,如果两个相邻事件是 $u, v$(顺序无关),你会使得其中一个女主好感度加 $1$。
至于是哪个女主,这由 $e_{u,v}$ (相当于双向边)决定,你并不知道 $e_{u,v}$ 的具体值,不过你可以通过询问知晓一些边。
好感度上限为 $k$,你想找到一条长度为 $k + 1$ 的路径使得没有相同事件且每两个相邻事件都是给同一个女主加好感。
注意你已经知道了对所有 $1 \leq i < k$,连接 $i$ 和 $i + 1$ 的边为给第一个女主加好感的。
Tasks
你需要实现下面的过程:
std::vector<int> find_longer_path(int n, int k)
其中 $n$ 是完全图的节点数,$k$ 是输入的参数。在所有的数据中,保证 $k \leq \frac{2n}{3}$,你需要返回一个长度为 $k + 1$ 的点的序列,表示你找到的满足条件的路径。
如果图中不存在这样的路径,你的函数的返回值应当是一个不包含元素的 vector。
你可以调用以下函数和交互库进行交互:
bool query(int u, int v)
表示询问 $e_{u,v}$,当函数返回值为 $\text{true}$ 时表示该边给第一个女主加好感,否则给第二个女主加好感。你需要保证 $1 \leq u, v \leq n$ ,且 $u \neq v$。
Method For Judge
评测程序示例将读入如下格式的输入数据:
第一行包括两个正整数 $n$ 和 $k$。
接下来 $n$ 行,每行 $n$ 个数,第 $i$ 行的第 $j$ 个数 $e_{i,j}$ 表示点 $i$ 和点 $j$ 间连边的颜色,$1$ 为第一个女主,$0$ 为第二个女主。你需要保证 $e_{i,j} = e_{j,i}$,且对所有 $1 \leq u < k$,有 $e_{u,u+1} = 1$。
Constraints & Hints
本题的测试用交互库是 adaptive 的,即图中所有边的颜色可能不会事先确定,而是会根据你的询问对图进行调整。
对于 100% 的数据,$1 \leq k \leq 2000$, $\lfloor 1.5k \rfloor \leq n \leq \lfloor 2k \rfloor$。
subtask1 (13pts) : $k \leq 12,Q = 160$。
subtask2 (7pts) : $k \leq 40,Q = 1600$。
subtask3 (15pts) : $k \leq 100, n = 2 \times k,Q = 20000$。
subtask4 (15pts) : $k \leq 500, n = 2 \times k,Q = 2000$。
subtask5 (20pts) : $k \leq 1000,Q = 4000$。
subtask6 (30pts) : $k \leq 2000,Q = 4000$。