Submission #499796

#TimeUsernameProblemLanguageResultExecution timeMemory
499796NachoLibre"The Lyuboyn" code (IZhO19_lyuboyn)C++17
100 / 100
70 ms7492 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define sz(x) ((int)(x).size()) #define all(x) (x).begin(), (x).end() using namespace std; string str(int x, int n) { string s; for(int i = n - 1; i >= 0; --i) { s += '0' + !!(x & 1 << i); } return s; } int num(string s) { int x = 0; for(int i = 0; i < sz(s); ++i) { x <<= 1; x |= s[i] == '1'; } return x; } int main() { ios::sync_with_stdio(0); cin.tie(0); int n, k, t; string S; #ifndef wambule cin >> n >> k >> t >> S; #else n = 18; k = 3; t = 1; S = "0"; #endif int s = num(S); if(k % 2 == 0) return cout << -1 << endl, 0; vector<int> v{0}; for(int i = 1; i < k + 1; ++i) { v.push_back(i); for(int j = sz(v) - 2; j >= 0; --j) { v.push_back(v[j]); } } vector<int> fp{0}; for(int i : v) { fp.push_back(fp.back() ^ (1 << k + 1) - 1 ^ 1 << i); } for(int i = k + 1; i < n; ++i) { for(int j = sz(fp) - 1; j >= 0; --j) { fp.push_back(fp[j] ^ 1 << i ^ (1 << k - 1) - 1); } } for(int i = 0; i < sz(fp); ++i) { int x = __builtin_popcountll(fp[i] ^ fp[(i + 1) % sz(fp)]); if(x != k) { cout << "! ! ! ! !" << endl; return 0; } } cout << (1 << n) << endl; for(int x : fp) { cout << str(x ^ s, n) + "\n"; } return 0; }

Compilation message (stderr)

lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:41:36: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
   41 |   fp.push_back(fp.back() ^ (1 << k + 1) - 1 ^ 1 << i);
      |                                  ~~^~~
lyuboyn.cpp:41:41: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   41 |   fp.push_back(fp.back() ^ (1 << k + 1) - 1 ^ 1 << i);
      |                            ~~~~~~~~~~~~~^~~
lyuboyn.cpp:45:42: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
   45 |    fp.push_back(fp[j] ^ 1 << i ^ (1 << k - 1) - 1);
      |                                        ~~^~~
lyuboyn.cpp:45:47: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   45 |    fp.push_back(fp[j] ^ 1 << i ^ (1 << k - 1) - 1);
      |                                  ~~~~~~~~~~~~~^~~
#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...