Submission #998614

# Submission time Handle Problem Language Result Execution time Memory
998614 2024-06-14T10:52:16 Z GrindMachine "The Lyuboyn" code (IZhO19_lyuboyn) C++17
34 / 100
81 ms 45400 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

template<typename T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
typedef long long int ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL)
#define pb push_back
#define endl '\n'
#define sz(a) (int)a.size()
#define setbits(x) __builtin_popcountll(x)
#define ff first
#define ss second
#define conts continue
#define ceil2(x,y) ((x+y-1)/(y))
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define yes cout << "Yes" << endl
#define no cout << "No" << endl

#define rep(i,n) for(int i = 0; i < n; ++i)
#define rep1(i,n) for(int i = 1; i <= n; ++i)
#define rev(i,s,e) for(int i = s; i >= e; --i)
#define trav(i,a) for(auto &i : a)

template<typename T>
void amin(T &a, T b) {
    a = min(a,b);
}

template<typename T>
void amax(T &a, T b) {
    a = max(a,b);
}

#ifdef LOCAL
#include "debug.h"
#else
#define debug(...) 42
#endif

/*



*/

const int MOD = 1e9 + 7;
const int N = 1e5 + 5;
const int inf1 = int(1e9) + 5;
const ll inf2 = ll(1e18) + 5;

void solve(int test_case)
{
    ll n,k,t; cin >> n >> k >> t;
    string s; cin >> s;

    if(!(k&1)){
        cout << -1 << endl;
        return;
    }

    vector<string> ans;

    if(k == 1){
        ans = {"00","01","11","10"};
    }
    else if(k == 3){
        ans = {
            "0000","1101","0011","1110",
            "0101","1011","0110","1000",
            "1111","0010","1100","0001",
            "1010","0100","1001","0111"
        };   
    }

    auto f = [&](string s1, string s2){
        ll diff = 0;
        rep(i,sz(s1)){
            diff += s1[i]!=s2[i];
        }
        return diff;
    };

    for(int i = k+2; i <= n; ++i){
        if(k == 1){
            auto ans2 = ans;
            trav(t,ans2) t = "0"+t;
            reverse(all(ans));
            trav(t,ans) ans2.pb("1"+t);
            ans = ans2;
            conts;
        }

        auto ans2 = ans;
        trav(t,ans2) t = "0"+t;
        ll ind = -1;
        rep1(j,sz(ans)-1){
            if(f(ans[j],ans.back()) == k-1 and f(ans[j-1],ans[0]) == k-1){
                ind = j;
                break;
            }
        }

        assert(ind != -1);
        ll times = 0;

        for(int i = ind; ; i = (i+1)%sz(ans)){
            if(i == ind) times++;
            if(times == 2) break;
            auto t = ans[i];
            t = "1"+t;
            ans2.pb(t);
        }

        ans = ans2;
        assert(f(ans[0],ans.back()) == k);
    }

    rep(i,sz(ans)-1){
        assert(f(ans[i],ans[i+1]) == k);
    }

    cout << (1<<n) << endl;
    trav(x,ans) cout << x << endl;

    /*

    ll n = 8, k = 2;
    vector<ll> a(n);
    iota(all(a),0);

    do{

        bool ok = true;
        rep(i,n-1){
            ll xo = a[i]^a[i+1];
            if(setbits(xo) != k){
                ok = false;
                break;
            }
        }

        if(ok){
            debug(a);
        }

    } while(next_permutation(all(a)));

    */
}

int main()
{
    fastio;

    int t = 1;
    // cin >> t;

    rep1(i, t) {
        solve(i);
    }

    return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB First number in answer is not x 1 0
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Ok
2 Correct 0 ms 348 KB Ok
3 Correct 0 ms 348 KB Ok
4 Correct 0 ms 348 KB Ok
5 Correct 0 ms 348 KB Ok
6 Correct 0 ms 348 KB Ok
7 Correct 0 ms 344 KB Ok
8 Correct 1 ms 344 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 81 ms 45400 KB Ok
2 Correct 38 ms 22972 KB Ok
3 Correct 0 ms 348 KB Ok
4 Correct 0 ms 348 KB Ok
5 Correct 0 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Ok
2 Correct 1 ms 1240 KB Ok
3 Correct 41 ms 21948 KB Ok
4 Correct 22 ms 10176 KB Ok
5 Correct 1 ms 344 KB Ok
6 Correct 0 ms 604 KB Ok
7 Correct 6 ms 3528 KB Ok
8 Correct 0 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 600 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 81 ms 45400 KB Ok
2 Correct 38 ms 22972 KB Ok
3 Correct 0 ms 348 KB Ok
4 Correct 0 ms 348 KB Ok
5 Correct 0 ms 348 KB Ok
6 Correct 0 ms 348 KB Ok
7 Correct 1 ms 1240 KB Ok
8 Correct 41 ms 21948 KB Ok
9 Correct 22 ms 10176 KB Ok
10 Correct 1 ms 344 KB Ok
11 Correct 0 ms 604 KB Ok
12 Correct 6 ms 3528 KB Ok
13 Correct 0 ms 348 KB Ok
14 Runtime error 1 ms 600 KB Execution killed with signal 6
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 0 ms 604 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -