{"problem":{"name":"[EGOI 2021] Twin Cookies / 姐妹分饼干","description":{"content":"**本题是一道 I/O 交互题。** 索菲在准备她们姐妹的生日派对。她们都喜欢饼干。这次生日，她们准备尝试一些新东西：不同饼干口味公司（UCTC）生产的饼干。 UCTC 生产的每一个饼干都有一个在 $1$ 到 $10^{16}$ 之间的整数美味度。索菲姐妹会嫉妒彼此，因此她们收到的饼干的总美味度必须相同。 UCTC 只接受**恰好 $n$ 个**饼干的订单。在每个订单中，顾客详细说明他们想要","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":262144},"difficulty":{"LuoguStyle":"P4"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP9311"},"statements":[{"statement_type":"Markdown","content":"**本题是一道 I/O 交互题。**\n\n索菲在准备她们姐妹的生日派对。她们都喜欢饼干。这次生日，她们准备尝试一些新东西：不同饼干口味公司（UCTC）生产的饼干。\n\nUCTC 生产的每一个饼干都有一个在 $1$ 到 $10^{16}$ 之间的整数美味度。索菲姐妹会嫉妒彼此，因此她们收到的饼干的总美味度必须相同。\n\nUCTC 只接受**恰好 $n$ 个**饼干的订单。在每个订单中，顾客详细说明他们想要的每个饼干的美味度。\n\n顾名思义，不同饼干口味公司拒绝为同一个顾客生产两块美味度相同的饼干。索菲必须确保她从不订购同一种美味度两次——不管是同一个订单或者两个不同的订单。索菲以前从来没有从 UCTC 订购过，所以她可以购买每种口味的饼干最多一次。\n\n还有一件事阻碍着索菲：众所周知 UCTC 的物流服务极为糟糕。当一个顾客订购 $n$ 个饼干，只有其中一个会被送达。其余的饼干都被物流的员工偷吃了。顾客无法决定到底哪块饼干会被送达。\n\n鉴于生日临近，索菲只有时间订购至多 $101$ 次。你的任务是帮助她。\n\n具体地，你需要做的事情如下：\n\n1. 首先，订购饼干。你可以订购至多 $101$ 次，每次包含恰好 $n$ 个想要的美味度。你可以分多次订购。**在每笔订单发出后，你会立刻知道送达的饼干的美味度。**\n\n    请记住你不能多次订购同一个美味度的饼干，即使在不同订单中也不行。（特别地，如果你订购了一些美味度的饼干但没有送达，你也**不能**重复订购同一美味度的饼干。）\n\n2. 然后，分饼干。当你收到足够多饼干的时候，你应该给姐妹分配**一些**饼干。每个人应该收到至少一个饼干，并且她们收到的饼干的总美味度应该相同。**你不需要分配所有送达的饼干。**\n\n## Output\n\n你的程序每次输出后，你必须**刷新输出流**。为了保证交互库立即得到你的输出，这是必须的。\n\n一些例子：\n\n- 在 C++ 语言中，有多种选择：\n    - `fflush(stdout);`\n    - `std::cout << std::flush;`\n    - `std::cout << std::endl;`（注意这会打印一个换行）\n    - 从 `std::cin` 读入也会刷新输出流。\n- 在 Java 语言中，你可以使用 `System.out.flush()`\n- 在 Python 语言中，你可以使用 `sys.stdout.flush()`\n\n---\n\n**交互方式**\n\n你的程序应该进行如下的若干操作：\n\n1. 从标准输入读入 $n$。\n2. 至多 $101$ 次：\n    1. 首先，向标准输出打印一行描述 $n$ 个饼干的一个订单。\n    2. 然后，输入送达的饼干美味度。\n    \n        保证这个数在当前订单的 $n$ 个美味度当中。\n3. 输出三行，描述一种给姐妹分配一些饼干的方式。\n\n交互库会在每一行写一个整数。\n\n为了订购饼干，输出一行，以 `?` 打头并跟着 $n$ 个整数：订购的饼干美味度。在每个整数之前输出一个空格。\n\n请记住你可以订购至多 $101$ 次，并且不被允许多次订购相同美味度的饼干。\n\n当你订购了足够多的饼干的时候，输出最后三行描述分配方式。\n\n第一行的格式是 `! m k`，其中 $m,k>0$：两个人分别分到饼干的数量。\n\n第二行包含 $m$ 个正整数，用一个空格隔开：第一个人收到的饼干美味度。\n\n第三行包含 $k$ 个正整数，用一个空格隔开：第二个人收到的饼干美味度。\n\n输出必须满足以下要求：\n\n1. 每个人至少收到一个饼干。\n2. 每个人收到饼干的总美味度相同。\n3. 你只能使用送达的饼干。\n4. 每个饼干只能分给至多一个人。\n\n任何符合要求的输出都将被判为 AC。特别地，你可以以任意顺序输出选择的饼干。\n\n在你输出完最后三行后，最后刷新一次输出流，并正常结束程序。\n\n[samples]\n\n## Background\n\nDay 1 Problem C.\n\n题面译自 [EGOI2021 twincookies](https://stats.egoi.org/media/task_description/2021_twincookies_en.pdf)。\n\n本题官方没给交互库，由于交互库实现原因，数据可能较弱。如果您会写自适应交互库，可以与 rui_er 取得联系。\n\n## Note\n\n**提示**\n\n样例输入输出应该一行一行阅读。你的程序交替从标准输入读一个整数以及向标准输出打印一行（或最后三行）。\n\n交互库任意地选择送达的饼干。这意味着在某些测试点中，交互库可能是自适应的；但在另一些测试点中，交互库可能随机选择。特别地，对于 $n=2$，如果你跟样例 $2$ 输出相同的订单，你可能得到不同的结果。\n\n---\n\n**数据范围**\n\n对于全部数据，$1\\le n\\le 5\\times 10^3$。\n\n- 子任务一（$8$ 分）：$n=1$。\n- 子任务二（$9$ 分）：$n\\le 2$。\n- 子任务三（$18$ 分）：$n\\le 25$。\n- 子任务四（$16$ 分）：$n\\le 200$。\n- 子任务五（$13$ 分）：$n\\le 10^3$。\n- 子任务六（$36$ 分）：无特殊限制。","is_translate":false,"language":"English"}],"meta":{"iden":"LGP9311","tags":["2021","交互题","Special Judge","O2优化","EGOI（欧洲/女生）"],"sample_group":[["1\n13\n7\n31\n12\n5\n3","? 13\n? 7\n? 31\n? 12\n? 5\n? 3\n! 2 3\n7 13\n12 5 3"],["2\n7\n2\n5","? 3 7\n? 2 8\n? 1 5\n! 2 1\n2 5\n7"]],"created_at":"2026-03-03 11:09:25"}}