AT_apc001_c Vacant Seat

题目描述

[problemUrl]: https://atcoder.jp/contests/apc001/tasks/apc001_c **这是一个交互式问题。** 设 $N$ 是一个大于等于 $3$ 的奇数。 有 $N$ 个座位以圆形排列。每个座位编号为 $0$ 到 $N-1$。对于每个 $i$($0 \leq i \leq N-2$),座位 $i$ 和座位 $i+1$ 相邻。同时,座位 $N-1$ 和座位 $0$ 也是相邻的。 每个座位的状态可能为“空座”、“男性坐在上面”或“女性坐在上面”。但是,不允许有同性别的人坐在相邻座位上。当 $N$ 为大于等于 $3$ 的奇数时,可以证明至少存在一个空座。 你只会被告知 $N$ 的值,并不知道每个座位的具体状态。你的目标是找出任意一个空座的编号。为此,你可以反复进行如下查询: - 你可以选择一个整数 $i$($0 \leq i \leq N-1$)。如果第 $i$ 个座位是空座,任务就达成了。如果不是空座,你会被告知这个座位上坐的是男性还是女性。 你最多可以进行 $20$ 次查询,在此之内请找出任意一个空座的编号。

输入格式

首先,标准输入会给出一个整数 $N$。 > $N$ 接下来,你可以反复进行查询。每次查询时,请将如下格式输出到标准输出,每次输出后须输出换行并刷新输出缓冲区。 > $i$ 对于你的查询,会从标准输入返回如下之一: > $s$ $s$ 的值可能是 `Vacant`、`Male` 或 `Female`,分别表示座位 $i$ 的状态为“空座”、“男性坐在上面”或“女性坐在上面”。

输出格式

输出详见输入格式。找到空座编号 $i$ 后即可结束程序。

说明/提示

### 限制条件 - $N$ 是奇数。 - $3 \leq N \leq 99,999$ ### 注意事项 - 每次输出后必须刷新输出缓冲区,否则可能会造成“超时”。 - 如果接收到 $s$ 为 `Vacant`,请立刻终止程序,否则评测结果不确定。 - 如果查询次数超过 $20$ 次,或输出格式错误,评测结果也不确定。 ### 输入输出样例 1 在这个样例中,$N=3$,座位 $0$, $1$, $2$ 的状态分别为“男性坐在上面”、“女性坐在上面”、“空座”。 输入输出示例: ``` 3 0 Male 1 Female 2 Vacant ``` 由 ChatGPT 5 翻译