Submission #471397

#TimeUsernameProblemLanguageResultExecution timeMemory
471397aZvezda"The Lyuboyn" code (IZhO19_lyuboyn)C++14
100 / 100
322 ms6468 KiB
#include <bits/stdc++.h> using namespace std; #define endl "\n" typedef long long ll; vector<int> build(int n, int k) { if(k == 1) { if(n == 1) { return {0, 1}; } auto ans = build(n - 1, k); auto cpy = ans; reverse(cpy.begin(), cpy.end()); vector<int> ret; for(auto it : ans) { ret.push_back(it * 2); } for(auto it : cpy) { ret.push_back(it * 2 + 1); } return ret; } auto ans = build(n - 2, k - 2); auto cpy = ans; reverse(cpy.begin(), cpy.end()); vector<int> ret; for(int i = 0; i < ans.size(); i ++) { auto it = ans[i]; if(i & 1) { ret.push_back(it * 4 + 0); } else { ret.push_back(it * 4 + 3); } } for(int i = 0; i < cpy.size(); i ++) { auto it = cpy[i]; if(i & 1) { ret.push_back((it ^ ((1 << (k - 1)) - 1)) * 4 + 1); } else { ret.push_back((it ^ ((1 << (k - 1)) - 1)) * 4 + 2); } } for(int i = 0; i < ans.size(); i ++) { auto it = ans[i]; if(i & 1) { ret.push_back(it * 4 + 3); } else { ret.push_back(it * 4 + 0); } } for(int i = 0; i < cpy.size(); i ++) { auto it = cpy[i]; if(i & 1) { ret.push_back((it ^ ((1 << (k - 1)) - 1)) * 4 + 2); } else { ret.push_back((it ^ ((1 << (k - 1)) - 1)) * 4 + 1); } } return ret; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, k, t, s = 0; cin >> n >> k >> t; if(k % 2 == 0) { cout << -1 << endl; return 0; } string str; cin >> str; int w = 1; for(auto it : str) { s = s + (it - '0') * w; w *= 2; } auto ans = build(n, k); s = ans[0] ^ s; cout << ans.size() << endl; for(auto it : ans) { int real = it ^ s; for(int i = 0; i < n; i ++) { cout << (bool)(real & (1 << i)); } cout << endl; } return 0; }

Compilation message (stderr)

lyuboyn.cpp: In function 'std::vector<int> build(int, int)':
lyuboyn.cpp:28:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |  for(int i = 0; i < ans.size(); i ++) {
      |                 ~~^~~~~~~~~~~~
lyuboyn.cpp:37:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |  for(int i = 0; i < cpy.size(); i ++) {
      |                 ~~^~~~~~~~~~~~
lyuboyn.cpp:46:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |  for(int i = 0; i < ans.size(); i ++) {
      |                 ~~^~~~~~~~~~~~
lyuboyn.cpp:55:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |  for(int i = 0; i < cpy.size(); i ++) {
      |                 ~~^~~~~~~~~~~~
#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...