Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
136980 李树强 派对灯 C++ 通过 100 0 MS 268 KB 2241 2024-03-09 16:40:37

Tests(8/8):


#include<iostream> #include<algorithm> #include<vector> using namespace std; int n, c, a[110], t; struct List{ bool b[110]; void setup(){ for(int i = 0; i < 110; i++) b[i] = 1; } bool check(){ for(int i = 1; i <= n; i++){ if(a[i] != b[i] && a[i] != 2) return false; } return true; } void f(int t){ if(t == 1) for(int i = 1; i <= n; i++) b[i] = !b[i]; else if(t == 2) for(int i = 1; i <= n; i += 2) b[i] = !b[i]; else if(t == 3) for(int i = 2; i <= n; i += 2) b[i] = !b[i]; else if(t == 4) for(int i = 1; i <= n; i += 3) b[i] = !b[i]; } bool operator < (const List & o) const{ for(int i = 1; i <= n; i++){ if(b[i] && (!o.b[i])) return false; else if((!b[i]) && o.b[i]) return true; } return false; } void output(){ for(int i = 1; i <= n; i++) cout << b[i]; cout << endl; } } ls[20]; void add(int & idx, bool b1 = 0, bool b2 = 0, bool b3 = 0, bool b4 = 0){ ls[idx].setup(); if(b1) ls[idx].f(1); if(b2) ls[idx].f(2); if(b3) ls[idx].f(3); if(b4) ls[idx].f(4); if(ls[idx].check()) idx++; } int main(){ cin >> n >> c; for(int i = 0; i < 110; i++) a[i] = 2; while(cin >> t && t != -1) a[t] = 1; while(cin >> t && t != -1) a[t] = 0; int idx = 0; if(c == 0){ add(idx); if(idx == 0) cout << "IMPOSSIBLE"; else ls[0].output(); } else if(c == 1){ add(idx, 1); add(idx, 0, 1); add(idx, 0, 0, 1); add(idx, 0, 0, 0, 1); if(idx == 0) cout << "IMPOSSIBLE"; else{ sort(ls, ls + idx); for(int i = 0; i < idx; i++){ ls[i].output(); } } } else if (c == 2){ add(idx); add(idx, 1); add(idx, 0, 1); add(idx, 0, 0, 1); add(idx, 1, 0, 0, 1); add(idx, 0, 1, 0, 1); add(idx, 0, 0, 1, 1); if(idx == 0) cout << "IMPOSSIBLE"; else{ sort(ls, ls + idx); for(int i = 0; i < idx; i++){ ls[i].output(); } } } else{ add(idx); add(idx, 1); add(idx, 0, 1); add(idx, 0, 0, 1); add(idx, 0, 0, 0, 1); add(idx, 1, 0, 0, 1); add(idx, 0, 1, 0, 1); add(idx, 0, 0, 1, 1); if(idx == 0) cout << "IMPOSSIBLE"; else{ sort(ls, ls + idx); for(int i = 0; i < idx; i++){ ls[i].output(); } } } return 0; }


测评信息: