Submission #173747

#TimeUsernameProblemLanguageResultExecution timeMemory
173747Just_Solve_The_Problem"The Lyuboyn" code (IZhO19_lyuboyn)C++11
100 / 100
112 ms44716 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); } } } vec.pop_back(); used[x] = 0; } 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::__cxx11::string&)':
lyuboyn.cpp:12:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < s.size(); i++) {
                  ~~^~~~~~~~~~
lyuboyn.cpp: In function 'int com(std::__cxx11::string, std::__cxx11::string)':
lyuboyn.cpp:33:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < a.size(); i++) {
                  ~~^~~~~~~~~~
lyuboyn.cpp: At global scope:
lyuboyn.cpp:62:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:63:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  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...