AT_code_thanks_festival_2017_e Coin Authentication
题目描述
[problemUrl]: https://atcoder.jp/contests/code-thanks-festival-2017/tasks/code_thanks_festival_2017_e
**这是一道交互题。**
海豚在街上发现了 $N$ 个装有硬币的袋子。
第 $i$ ($1 \leq i \leq N$) 个袋子里装有 $10000$ 枚,每枚重为 $w_i$ 克的硬币。
这时,海豚想起这座城市里流通着许多假币。
这 $N$ 个袋子中,有些袋子里可能全部都是假币。
海豚想要找出装有真币的袋子。
这些硬币的外观完全一样,但真币与假币的重量不同。
已知真币的重量为 $9$ 克或 $11$ 克,假币的重量为 $8$ 克、$10$ 克或 $12$ 克。
海豚并不知道每个袋子里硬币的重量 $w_i$。
于是,海豚向朋友虎鲸借来了一个天平。
利用天平称重的步骤如下:
- 对于每个袋子,任选整数 $0 \leq s_i \leq 10000\ (1 \leq i \leq N)$。
- 从第 $i$ 个袋子中取出 $s_i$ 枚硬币放到天平上。
- 然后进行称重,得到天平上硬币的总重量。
- 称重后,将硬币全部放回原袋。
但是,因为虎鲸非常忙,海豚 最多只能进行 $10$ 次称重。
请判定哪些袋子中包含真币。
输入格式
首先,标准输入会给出 $N$:
> $N$
之后,你可以进行交互查询,每次天平称重形式如下,最多不能超过 $10$ 次。
每次查询,你需要输出放到天平上的各袋硬币数,格式如下:
> ? $s_1$ $s_2$ $\ldots$ $s_N$
其中 $s_i$ 表示第 $i$ 个袋子取出放到天平上的硬币数量,$0 \leq s_i \leq 10000$ 且为整数。
随后,标准输入会返回本次称重的结果 $ans$:
> $ans$
其中 $ans$ 是天平上所有硬币的总重量(非负整数)。
最后,你需要输出最终答案,格式如下:
> ! $a_1$ $a_2$ $\ldots$ $a_N$
其中 $a_i$ 为第 $i$ 个袋子中只装真币则为 $1$,只装假币则为 $0$。
注意,最终答案输出不计入称重的次数限制。
输出格式
参见输入格式,输出查询和最终答案。
说明/提示
## 限制
- $1 \leq N \leq 50$
- $8 \leq w_i \leq 12$
- $N$ 和 $w_i$ 均为整数
## 评测说明
- **每次输出最后请包含换行(\n),并立刻刷新输出缓冲区(flush)。否则可能导致 `TLE`。**
- 输出最终答案后,程序必须立刻结束。否则行为未定义。
- 回答错误时,行为未定义(不一定返回 `WA`)。
## 样例
本样例中 $N = 5$,$w_1 = 8$,$w_2 = 9$,$w_3 = 10$,$w_4 = 11$,$w_5 = 12$,答案为 `0 1 0 1 0`。
| 输入 | 输出 |
| :-- | :-- |
| $5$ | |
| | $?$ $1$ $0$ $0$ $0$ $0$ |
| $8$ | |
| | $?$ $0$ $1$ $0$ $0$ $0$ |
| $9$ | |
| | $?$ $0$ $0$ $1$ $0$ $0$ |
| $10$ | |
| | $?$ $0$ $0$ $0$ $1$ $0$ |
| $11$ | |
| | $?$ $0$ $0$ $0$ $0$ $1$ |
| $12$ | |
| | $!$ $0$ $1$ $0$ $1$ $0$ |
由 ChatGPT 5 翻译