제출 #336552

#제출 시각아이디문제언어결과실행 시간메모리
336552amunduzbaev"The Lyuboyn" code (IZhO19_lyuboyn)C++14
69 / 100
1093 ms27724 KiB

#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
//#define mp make_pair
#define ub upper_bound
#define lb lower_bound
#define ll long long 
#define ld long double 
#define pii pair<int, int>
#define pll pair<ll, ll>
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(),x.rend()
#define prc(n) fixed << setprecision(n)
#define fastios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define pi acos(-1);
const int inf = 1e9+7;
const int N = 105;
 
int n, k, t, a;
 
string bin(int a){
	string s;
	while(a){
		s.pb(char((a%2) + '0'));
		a/=2;
	}
	
	while(sz(s) < n) s.pb('0');
	reverse(all(s));
	return s;
}

int main(){
	cin>>n>>k>>t;
	if(k%2 == 0){
		cout<<-1;
		return 0;
	}
	string s;
	cin>>s;
	reverse(all(s));
	for(int i=0;i<sz(s);i++)
		if(s[i] == '1') a += (1<<i);
	
	vector<int>ans = {0, 1};
	int mx = (1<<(k+1)) - 1;
	while(sz(ans) < (1<<(k+1))){
		int add = sz(ans), size = sz(ans);
		for(int i = size-1; i>=0; i--)
			ans.pb(ans[i] + add);
	}
	for(int i=0;i<sz(ans);i++)
		if(i % 2 == 0) ans[i] ^= mx;
	mx = (1<<(k-1)) -1;
	//cout<<(1<<(k-1))<<"\n";
	while(sz(ans) < (1<<n)){
		int add = sz(ans), size = sz(ans);
		for(int i = size-1; i>=0; i--)
			ans.pb(ans[i] + add);
		//for(int i=0;i<sz(ans);i++) cout<<bin(ans[i])<<"\n"; 
		for(int i = size; i < sz(ans); i++){
			ans[i] ^= mx;
		}
	}
	int start = 0;
	for(int i=0;i<(1<<n);i++){
		if(ans[i] == a) start = i;
	}
	cout<<(1<<n)<<"\n";
	int size = (1<<n);
	for(int i=start+1;i != start;i++){
		if(i == size+1) i = 1;
		cout<<bin(ans[i-1])<<"\n";
	}
	cout<<bin(ans[start-1])<<"\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...