Submission #1161628

#TimeUsernameProblemLanguageResultExecution timeMemory
1161628MisterReaper"The Lyuboyn" code (IZhO19_lyuboyn)C++20
3 / 100
440 ms6468 KiB
// Similar to Benq's solution, based on xor basis: https://oj.uz/submission/143064
// Also there is constructive solution like DeBrujin Sequences, see errorgorn's solution: https://oj.uz/submission/288552
#include <bits/stdc++.h>

using i64 = long long;

#ifdef DEBUG 
    #include "/home/ahmetalp/Desktop/Workplace/debug.h"
#else
    #define debug(...) void(23)
#endif

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int N, K, T;
    std::cin >> N >> K >> T;
    std::string S;
    std::cin >> S;

    if (K % 2 == 0) {
        std::cout << "-1\n";
        return 0;
    }

    std::vector<int> basis;
    for (int i = 0; i < (1 << N); ++i) {
        if (__builtin_popcount(i) != K) {
            continue;
        }
        int x = i;
        for (auto j : basis) {
            x = std::min(x, x ^ j);
        }
        if (x) {
            basis.emplace_back(i);
        }
    }

    assert(basis.size() == N);

    std::vector<int> ans(1 << N);
    for (int i = 0; i < N; ++i) {
        for (int j = (1 << i); j < (1 << N); j += (2 << i)) {
            ans[j] ^= basis[i];
        }
    }

    std::cout << (1 << N) << '\n';
    for (int i = 0; i < (1 << N); ++i) {
        std::string s(N, '?');
        for (int j = 0; j < N; ++j) {
            s[j] = char('0' + (i >> j & 1)) ^ (S[j] - '0');
        }
        std::cout << s << '\n';
    }

    return 0;
}
#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...