# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
898981 | 2024-01-05T10:30:01 Z | vjudge1 | "The Lyuboyn" code (IZhO19_lyuboyn) | C++17 | 1000 ms | 1372 KB |
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() const int Z = 10000; mt19937 rng(time(nullptr)); int n, k, t, s; string ss; signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> k >> t >> ss; if (k%2 == 0) { cout << "-1\n"; return 0; } s = 0; while (ss.size() < n) ss = "0"+ss; for (int i = 0; i < n; i++) { s += (1 << (n-i-1)) * (ss[i] == '1'); } for (int zz = 0; zz < Z; zz++) { vector<int> ans(1 << n); for (int i = 0; i < (1 << n); i++) { ans[i] = i; if (i == s) swap(ans[0], ans[i]); } bool ok = 0; shuffle(ans.begin()+1, ans.end(), rng); for (int z = 0; z < Z; z++) { int x = -1; for (int i = 0; i+1 < (1 << n); i++) { if (__builtin_popcount(ans[i] ^ ans[i+1]) != k) { x = i; break; } } if (x == -1) { ok = 1; break; } int y = -1; for (int i = x+2; i+1 < (1 << n); i++) { if (__builtin_popcount(ans[i] ^ ans[i+1]) != k && __builtin_popcount(ans[x] ^ ans[i]) == k && __builtin_popcount(ans[x+1] ^ ans[i+1]) == k) { y = i; break; } } if (y == -1) break; reverse(ans.begin()+x+1, ans.begin()+y+1); } if (!ok) continue; else { cout << (1 << n) << "\n"; for (int i = 0; i < (1 << n); i++) { for (int j = 0; j < n; j++) { if ((ans[i] >> (n-j-1)) & 1) ss[j] = '1'; else ss[j] = '0'; } cout << ss << "\n"; } } return 0; } cout << "-1\n"; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 344 KB | Ok |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 344 KB | Ok |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 348 KB | Ok |
2 | Correct | 0 ms | 348 KB | Ok |
3 | Correct | 0 ms | 348 KB | Ok |
4 | Correct | 0 ms | 348 KB | Ok |
5 | Correct | 1 ms | 348 KB | Ok |
6 | Correct | 0 ms | 468 KB | Ok |
7 | Correct | 0 ms | 348 KB | Ok |
8 | Correct | 0 ms | 348 KB | Ok |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1084 ms | 1372 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 24 ms | 348 KB | Ok |
2 | Execution timed out | 1057 ms | 348 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1010 ms | 1368 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1084 ms | 1372 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1031 ms | 856 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |