제출 #343820

#제출 시각아이디문제언어결과실행 시간메모리
343820Tosic"The Lyuboyn" code (IZhO19_lyuboyn)C++14
33 / 100
1093 ms23520 KiB
#include <bits/stdc++.h>
#define maxn 400010
using namespace std;

int n, k, t, ans;
vector<int> curR,masks;
bool was[maxn];

int bD(int a, int b){
	return __builtin_popcount(a^b)==k;
}


void printR(){
cout << (1<<n) << '\n';
	for(auto i : curR){
		bitset<32> tmp = i;
		//cout << tmp;
		for(int j = n-1; j >= 0; --j){
			cout << tmp[j];
		}
		cout << '\n';
	}
	exit(0);
}

void getR(int x){
	if(x == (1<<n)){
		if(t == 1 and bD(curR[0],curR.back())){
			printR();
		}
		if(!t and !bD(curR[0],curR.back())){
			printR();
		}
		return;
	}
	if(was[curR.back()]){
		return;
	}
	was[curR.back()] = 1;
	for(auto i : masks){
		curR.push_back(curR.back()^i);
		getR(x+1);
		curR.pop_back();
	}
	was[curR.back()] = 0;
}

int main(){
	ios_base::sync_with_stdio(0);
	cout.tie(0);
	cin.tie(0);
	string s;
	cin >> n >> k >> t >> s;
	int res = 0;
	for(int i =0 ; i < s.length(); ++i){
		res *= 2;
		res += (s[i]-'0');
	}
	for(int i = 0; i < (1<<n); ++i){
		if(bD(0, i)){
			masks.push_back(i);
		}
	}
	curR.push_back(res);
	getR(1);
	cout << -1;
}

컴파일 시 표준 에러 (stderr) 메시지

lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:56:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |  for(int i =0 ; i < s.length(); ++i){
      |                 ~~^~~~~~~~~~~~
#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...