Submission #990898

#TimeUsernameProblemLanguageResultExecution timeMemory
990898ToniB"The Lyuboyn" code (IZhO19_lyuboyn)C++17
100 / 100
44 ms6588 KiB
#include <bits/stdc++.h> using namespace std; int n, k, t; string s; int toInt(string s) { int ret = 0; for (int i = 0; i < s.length(); ++i) { ret <<= 1; ret += (s[i] == '1'); } return ret; } string toStr(int x) { string ret = ""; for (int i = n - 1; i >= 0; --i) { if (x & 1 << i) ret += '1'; else ret += '0'; } return ret; } vector<int> prufer(int lvl) { if (lvl == 1) return {0, 1}; vector<int> ret = prufer(lvl - 1); int sz = (int)ret.size(); for (int i = sz - 1; i >= 0; --i) ret.push_back(ret[i] | (1 << (lvl - 1))); return ret; } vector<int> gen(int lvl) { if (lvl == k + 1) { vector<int> ret = prufer(lvl); int cur = (1 << lvl) - 1; for (int i = 1; i < (int)ret.size(); i += 2) { ret[i] ^= cur; } return ret; } vector<int> sub = gen(lvl - 1); vector<int> ret = sub; int cur = 0; for (int i = lvl - 1; i >= lvl - k; --i) cur |= 1 << i; int nxt = ret.back() ^ cur; int dif = sub[0] ^ nxt; for (int x : sub) { ret.push_back(x ^ dif); } return ret; } int main(){ cin >> n >> k >> t >> s; if (!(k & 1)) { cout << "-1\n"; return 0; } vector<int> ans = gen(n); cout << (1 << n) << "\n"; int xr = toInt(s); for (int x : ans) { string cur = toStr(x ^ xr ^ ans[0]); cout << cur << "\n"; } return 0; }

Compilation message (stderr)

lyuboyn.cpp: In function 'int toInt(std::string)':
lyuboyn.cpp:9:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |  for (int i = 0; i < s.length(); ++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...