Submission #344894

#TimeUsernameProblemLanguageResultExecution timeMemory
344894bash"The Lyuboyn" code (IZhO19_lyuboyn)C++17
100 / 100
111 ms48864 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; int n, k, t; vector <int> tran; int val(string &s) { int res = 0; for (int i = 0; i < s.size(); i++) { res += ((s[i] - '0') << i); } return res; } string rev(int x) { string res; for (int i = 0; i < n; i++) { res += (x % 2 + '0'); x /= 2; } return res; } int used[1 << 18]; int cnt = 0; vector <int> vec; int com(string a, string b) { int res = 0; for (int i = 0; i < a.size(); i++) { res += (a[i] != b[i]); } return res; } void go(int x) { used[x] = 1; cnt++; vec.push_back(x); if (cnt == (1 << n)) { if (t == 0 || (com(rev(vec[0]), rev(vec.back())) == k)) { cout << vec.size() << endl; for (int to : vec) { cout << rev(to) << '\n'; } exit(0); } } else { for (int to : tran) { if (!used[x ^ to]) { go(x ^ to); } } } } main() { scanf("%d %d %d", &n, &k, &t); if (k % 2 == 0) { puts("-1"); return 0; } for (int i = 0; i < (1 << n); i++) { if (__builtin_popcount(i) == k) { tran.push_back(i); } } string s; cin >> s; int x = val(s); go(x); }

Compilation message (stderr)

lyuboyn.cpp: In function 'int val(std::string&)':
lyuboyn.cpp:12:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |  for (int i = 0; i < s.size(); i++) {
      |                  ~~^~~~~~~~~~
lyuboyn.cpp: In function 'int com(std::string, std::string)':
lyuboyn.cpp:33:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |  for (int i = 0; i < a.size(); i++) {
      |                  ~~^~~~~~~~~~
lyuboyn.cpp: At global scope:
lyuboyn.cpp:60:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   60 | main() {
      |      ^
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:61:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   61 |  scanf("%d %d %d", &n, &k, &t);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#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...