Submission #1290929

#TimeUsernameProblemLanguageResultExecution timeMemory
1290929Hamed_Ghaffari"The Lyuboyn" code (IZhO19_lyuboyn)C++20
100 / 100
125 ms18856 KiB
#include <bits/stdc++.h> using namespace std; int n, k, t, s; string st; vector<int> gray_code(int n) { if(n==1) return {0, 1}; vector<int> A = gray_code(n-1), B = A; while(!B.empty()) { A.push_back(B.back()^(1<<(n-1))); B.pop_back(); } return A; } vector<int> solve(int n, int k) { if(n==k+1) { vector<int> A = gray_code(n); for(int i=1; i<A.size(); i+=2) A[i] = A[i]^((1<<n)-1); return A; } vector<int> A = solve(n-1, k), B = A; while(!B.empty()) { A.push_back(B.back()^((1<<n)-1)^((1<<(n-k))-1)); B.pop_back(); } return A; } int32_t main() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); cin >> n >> k >> t >> st; for(int i=0; i<n; i++) s ^= (st[i]-'0')<<i; if(k%2==0) { cout << "-1\n"; return 0; } vector<int> ans = solve(n, k); for(int &i : ans) i ^= s; cout << ans.size() << '\n'; for(int i : ans) { for(int j=0; j<n; j++) cout << (i>>j&1); cout << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...