{"problem":{"name":"[语言月赛 202511] 彩云曼波","description":{"content":"共有 $n$ 个瓶子排成一列，每个瓶子有且只有一个 $1\\sim n$ 范围内的颜色，没有两个瓶子颜色相同。 你需要猜测瓶子的颜色顺序。你可以向交互库询问你的猜测是否正确。每次询问，你应当**向标准输出**输出一行 $n$ 个整数，表示从左至右瓶子的颜色，**然后输出一个换行并清空缓冲区**。 你可以使用如下语句来清空缓冲区： - 对于 C/C++：`fflush(stdout)`； - 对","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":524288},"difficulty":{"LuoguStyle":"P2"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGB4436"},"statements":[{"statement_type":"Markdown","content":"共有 $n$ 个瓶子排成一列，每个瓶子有且只有一个 $1\\sim n$ 范围内的颜色，没有两个瓶子颜色相同。\n\n你需要猜测瓶子的颜色顺序。你可以向交互库询问你的猜测是否正确。每次询问，你应当**向标准输出**输出一行 $n$ 个整数，表示从左至右瓶子的颜色，**然后输出一个换行并清空缓冲区**。\n\n你可以使用如下语句来清空缓冲区：\n\n- 对于 C/C++：`fflush(stdout)`；\n- 对于 C++：`std::cout << std::flush`；\n- 对于 Java：`System.out.flush()`；\n- 对于 Python：`stdout.flush()`；\n- 对于 Pascal：`flush(output)`；\n- 对于其他语言，请自行查阅对应语言的帮助文档。\n\n特别的，对于 C++ 语言，在输出换行时如果你使用 `std::endl` 而不是 `'\\n'`，也可以自动刷新缓冲区。**建议使用`std::endl`以避免忘记输出换行。**\n\n然后你需要从**标准输入**中输入一个整数，代表交互库返回的结果。为 $0$ 则表示猜测错误，为 $1$ 则表示猜测正确。\n\n你最多询问 $40320$ 次。\n\n## Input\n\n首先读入一个整数 $n$。\n\n之后，每次询问后读入一个 $0$ 或 $1$ 的整数。\n\n**当你读入 $1$ 后，应当立即结束程序。**\n\n## Output\n\n每次询问，输出一行 $n$ 个整数。\n\n[samples]\n\n## Background\n\n**这是一道交互题。**\n\n## Note\n\n对于 $100\\%$ 的测试数据，$1 \\le n \\le 8$。\n\n示例程序：\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main() {\n  int n, result;\n  cin >> n;\n  // 向标准输出输出一行 n 个整数，表示从左至右瓶子的颜色\n  for(int i = 1; i <= n; i++) {\n    cout << i << ' ';\n  }\n  // 然后输出一个换行并清空缓冲区\n  cout << endl; fflush(stdout);\n  // 从标准输入中输入一个整数，代表交互库返回的结果\n  cin >> result;\n  // 当你读入 1 后，应当立即结束程序。\n  if(result) return 0;\n  for(int i = n; i >= 1; i--) {\n    cout << i << ' ';\n  }\n  cout << endl; fflush(stdout);\n  cin >> result;\n  if(result) return 0;\n  return 0;\n}\n\n```","is_translate":false,"language":"English"}],"meta":{"iden":"LGB4436","tags":["2025","交互题","Special Judge","枚举","深度优先搜索 DFS","函数与递归","语言月赛"],"sample_group":[["5\n\n0\n\n1","\n1 2 3 5 4\n\n1 2 3 4 5"]],"created_at":"2026-03-03 11:09:25"}}