| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 80963 | sh25_huangse | 开关灯 | C++ | 通过 | 0 MS | 252 KB | 971 | 2026-01-04 15:36:35 |
#include <iostream> #include <vector> using namespace std; int main() { int N, M; cin >> N >> M; // light[i] 表示第i盏灯的状态:true=开, false=关 // 为了方便,我们使用下标 1..N,忽略下标0 vector<bool> light(N + 1, true); // 初始全部开启 // 模拟M个人的操作 for (int person = 1; person <= M; person++) { // 对当前人的所有倍数编号的灯进行取反 for (int lamp = person; lamp <= N; lamp += person) { light[lamp] = !light[lamp]; // 取反 } } // 输出关闭的灯的编号 bool first = true; // 标记是否是第一个输出的编号(用于控制逗号) for (int i = 1; i <= N; i++) { if (!light[i]) { // 灯是关闭的 if (!first) { cout << ","; } cout << i; first = false; } } cout << endl; return 0; }