제출 #1139250

#제출 시각아이디문제언어결과실행 시간메모리
1139250AHOKA"The Lyuboyn" code (IZhO19_lyuboyn)C++20
20 / 100
29 ms15016 KiB
#pragma GCC optimize("O3") 

#include <bits/stdc++.h>

using namespace std;
 
#define threesum cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false)
#define all(a) a.begin(), a.end()
#define F first
#define S second
#define int long long
#define double long double
#define pii pair<int, int>
#define ppp pair<int, pii>
#define dout cout << fixed << setprecision(15)
#define mid ((l + r) / 2)
#define lc (2 * id)
#define rc (lc + 1)

const int maxn = 1e6 + 10, maxm = 1e3 + 10, oo = 1e18 + 10, lg = 8, sq = 350, mod = 1e9 + 7;

int n, k, t;

vector<string> ans = {
"0000", "1110", "0011", "1000", 
"1111", "0001", "1100", "0111", 
"1010", "0100", "1001", "0010", 
"0101", "1011", "0110", "1101"};

//vector<string> ans;

int diff(string a, string b){
    int res = 0;
    for (int i = 0; i < a.size(); i++)
        res += (a[i] != b[i]);
    return res;
}

string s;

signed main()
{
	threesum;
    cin >> n >> k >> t >> s;

    for (int b = k + 2; b <= n;b++){
        vector<string> v = ans;

        for (int i = 0; i < v.size();i++){
            reverse(all(ans[i]));
            ans[i].push_back('0');
            reverse(all(ans[i]));

            reverse(all(v[i]));
            v[i].push_back('1');
            reverse(all(v[i]));
        }

        int ind = -1;
        for (int i = 0; i < v.size();i++)
            if(diff(ans.back(), v[i]) == k && diff(ans[0], v[(i - 1 + v.size()) % v.size()]) == k){
                ind = i;
                break;
            }

        if(ind == -1){
            cout << "-1\n";
            break;
        }

        for (int i = ind; i < v.size();i++)
            ans.push_back(v[i]);
        for (int i = 0; i < ind;i++)
            ans.push_back(v[i]);
    }

    cout << pow(2, n) << "\n";
    for(auto i : ans)
        cout << i << "\n";
}
/*
18 3 0
00000000
*/
#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...