Submission #151313

#TimeUsernameProblemLanguageResultExecution timeMemory
151313theboatman"The Lyuboyn" code (IZhO19_lyuboyn)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define y1 theboatman #define make_struct(args...) {args} using namespace std; typedef long long ll; const long long INF = 1e18 + 10; const int inf = 1e9 + 10; const int N = 1e6 + 10; string mask(int x, int n) { string mask; while(x) { mask.push_back(char((x % 2) + '0')); x /= 2; } reverse(mask.begin(), mask.end()); while(mask.size() < n) { mask.push_back('0'); } return mask; } int dist(int x, int y) { return __builtin_popcount(x ^ y); } void check(vector <int> ans, int k, int t) { for(int i = 1; i < ans.size(); i++) { if (dist(ans[i], ans[i - 1]) != k) { cout << "-1\n"; exit(0); } } if (t && dist(ans.back(), ans[0]) != k) { cout << "-1\n"; exit(0); } } int main() { cin.tie(0); ios::sync_with_stdio(0); int n, k, t; cin >> n >> k >> t; string s; cin >> s; vector <int> st; for(int i = 0; i < (1 << n); i++) { st.push_back(i ^ (i >> k)); } int pos = 0; for(auto i : st) { if (mask(i, n) == s) { break; } pos++; } vector <int> ans; for(int i = pos; i < (1 << n); i++) { ans.push_back(st[i]); } for(int i = 0; i < pos; i++) { ans.push_back(st[i]); } check(ans, k, t); if (mask(ans[0]) != s) { cout << 1 / 0 << "\n"; } cout << ans.size() << "\n"; for(auto i : ans) { cout << mask(i, n) << "\n"; } return 0; } /* */

Compilation message (stderr)

lyuboyn.cpp: In function 'std::__cxx11::string mask(int, int)':
lyuboyn.cpp:23:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(mask.size() < n) {
           ~~~~~~~~~~~~^~~
lyuboyn.cpp: In function 'void check(std::vector<int>, int, int)':
lyuboyn.cpp:35:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 1; i < ans.size(); i++) {
                    ~~^~~~~~~~~~~~
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:83:20: error: too few arguments to function 'std::__cxx11::string mask(int, int)'
     if (mask(ans[0]) != s) {
                    ^
lyuboyn.cpp:14:8: note: declared here
 string mask(int x, int n) {
        ^~~~
lyuboyn.cpp:84:19: warning: division by zero [-Wdiv-by-zero]
         cout << 1 / 0 << "\n";
                 ~~^~~