[语言月赛 202511] 彩云曼波

Luogu
IDLGB4436
Time1000ms
Memory512MB
DifficultyP2
2025交互题Special Judge枚举深度优先搜索 DFS函数与递归语言月赛
共有 $n$ 个瓶子排成一列,每个瓶子有且只有一个 $1\sim n$ 范围内的颜色,没有两个瓶子颜色相同。 你需要猜测瓶子的颜色顺序。你可以向交互库询问你的猜测是否正确。每次询问,你应当**向标准输出**输出一行 $n$ 个整数,表示从左至右瓶子的颜色,**然后输出一个换行并清空缓冲区**。 你可以使用如下语句来清空缓冲区: - 对于 C/C++:`fflush(stdout)`; - 对于 C++:`std::cout << std::flush`; - 对于 Java:`System.out.flush()`; - 对于 Python:`stdout.flush()`; - 对于 Pascal:`flush(output)`; - 对于其他语言,请自行查阅对应语言的帮助文档。 特别的,对于 C++ 语言,在输出换行时如果你使用 `std::endl` 而不是 `'\n'`,也可以自动刷新缓冲区。**建议使用`std::endl`以避免忘记输出换行。** 然后你需要从**标准输入**中输入一个整数,代表交互库返回的结果。为 $0$ 则表示猜测错误,为 $1$ 则表示猜测正确。 你最多询问 $40320$ 次。 ## Input 首先读入一个整数 $n$。 之后,每次询问后读入一个 $0$ 或 $1$ 的整数。 **当你读入 $1$ 后,应当立即结束程序。** ## Output 每次询问,输出一行 $n$ 个整数。 [samples] ## Background **这是一道交互题。** ## Note 对于 $100\%$ 的测试数据,$1 \le n \le 8$。 示例程序: ```cpp #include<bits/stdc++.h> using namespace std; int main() { int n, result; cin >> n; // 向标准输出输出一行 n 个整数,表示从左至右瓶子的颜色 for(int i = 1; i <= n; i++) { cout << i << ' '; } // 然后输出一个换行并清空缓冲区 cout << endl; fflush(stdout); // 从标准输入中输入一个整数,代表交互库返回的结果 cin >> result; // 当你读入 1 后,应当立即结束程序。 if(result) return 0; for(int i = n; i >= 1; i--) { cout << i << ' '; } cout << endl; fflush(stdout); cin >> result; if(result) return 0; return 0; } ```
Samples
Input #1
5

0

1
Output #1
1 2 3 5 4

1 2 3 4 5
API Response (JSON)
{
  "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- 对...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments