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 翻译