# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
151318 | 2019-09-02T12:50:45 Z | theboatman | "The Lyuboyn" code (IZhO19_lyuboyn) | C++17 | 71 ms | 8568 KB |
#include <bits/stdc++.h> #define y1 theboatman #define make_struct(args...) {args} using namespace std; typedef long long ll; const long long INF = 1e18 + 10; const int inf = 1e9 + 10; const int N = 1e6 + 10; string mask(int x, int n) { string mask; while(x) { mask.push_back(char((x % 2) + '0')); x /= 2; } while(mask.size() < n) { mask.push_back('0'); } reverse(mask.begin(), mask.end()); return mask; } int dist(int x, int y) { return __builtin_popcount(x ^ y); } void check(vector <int> ans, int k, int t) { for(int i = 1; i < ans.size(); i++) { if (dist(ans[i], ans[i - 1]) != k) { cout << "-1\n"; exit(0); } } if (t && dist(ans.back(), ans[0]) != k) { cout << "-1\n"; exit(0); } } int main() { cin.tie(0); ios::sync_with_stdio(0); int n, k, t; cin >> n >> k >> t; string s; cin >> s; vector <int> st; int now = 0, it = 0; vector <int> used(1 << n); while(now < (1 << n) && it < int(1e7)) { int x = (it ^ (it >> k)); if (x < (1 << n) && !used[x]) { now++; st.push_back(x); used[x]++; } it++; } if (now != (1 << n)) { return cout << "-1\n", 0; } int pos = 0; for(auto i : st) { if (mask(i, n) == s) { break; } pos++; } vector <int> ans; for(int i = pos; i < (1 << n); i++) { ans.push_back(st[i]); } for(int i = 0; i < pos; i++) { ans.push_back(st[i]); } check(ans, k, t); cout << ans.size() << "\n"; for(auto i : ans) { cout << mask(i, n) << "\n"; } return 0; } /* */
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Ok |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 256 KB | Output -1 while solution exists |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 504 KB | Ok |
2 | Correct | 9 ms | 4632 KB | Ok |
3 | Correct | 5 ms | 2548 KB | Ok |
4 | Correct | 2 ms | 256 KB | Ok |
5 | Correct | 2 ms | 376 KB | Ok |
6 | Correct | 2 ms | 376 KB | Ok |
7 | Correct | 2 ms | 504 KB | Ok |
8 | Correct | 5 ms | 2548 KB | Ok |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 71 ms | 8568 KB | Ok |
2 | Correct | 35 ms | 4336 KB | Ok |
3 | Correct | 2 ms | 376 KB | Ok |
4 | Correct | 2 ms | 376 KB | Ok |
5 | Correct | 2 ms | 376 KB | Ok |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | Output -1 while solution exists |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 23 ms | 4592 KB | Output -1 while solution exists |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 71 ms | 8568 KB | Ok |
2 | Correct | 35 ms | 4336 KB | Ok |
3 | Correct | 2 ms | 376 KB | Ok |
4 | Correct | 2 ms | 376 KB | Ok |
5 | Correct | 2 ms | 376 KB | Ok |
6 | Incorrect | 2 ms | 376 KB | Output -1 while solution exists |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 2548 KB | Output -1 while solution exists |
2 | Halted | 0 ms | 0 KB | - |