답안 #990893

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
990893 2024-05-31T17:46:33 Z ToniB "The Lyuboyn" code (IZhO19_lyuboyn) C++17
11 / 100
46 ms 6580 KB
#include <bits/stdc++.h>
using namespace std;

int n, k, t;
string s;

int toInt(string s) {
	int ret = 0;
	for (int i = 0; i < s.length(); ++i) {
		ret <<= 1;
		ret += (s[i] == '1');
	}
	return ret;
}
string toStr(int x) {
	string ret = "";
	for (int i = n - 1; i >= 0; --i) {
		if (x & 1 << i) ret += '1';
		else ret += '0';
	}
	return ret;
}

vector<int> prufer(int lvl) {
	if (lvl == 1) return {0, 1};
	vector<int> ret = prufer(lvl - 1);
	int sz = (int)ret.size();
	for (int i = sz - 1; i >= 0; --i) ret.push_back(ret[i] | (1 << (lvl - 1)));
	return ret;
}

vector<int> gen(int lvl) {
	if (lvl == k + 1) {
		vector<int> ret = prufer(lvl);
		int cur = (1 << lvl) - 1;
		for (int i = 1; i < (int)ret.size(); i += 2) {
			ret[i] ^= cur;
		}
		return ret;
	}
	vector<int> sub = gen(lvl - 1);
	vector<int> ret = sub;
	int cur = 0;
	for (int i = lvl - 1; i >= lvl - k; --i) cur |= 1 << i;
	for (int x : sub) {
		ret.push_back(x ^ cur);
	}
	return ret;
}

int main(){
	cin >> n >> k >> t >> s;
	
	vector<int> ans = prufer(n);
	
	cout << (1 << n) << "\n";
	
	int xr = toInt(s);
	for (int x : ans) {
		string cur = toStr(x ^ xr ^ ans[0]);
		cout << cur << "\n";
	}
	
	return 0;
}

Compilation message

lyuboyn.cpp: In function 'int toInt(std::string)':
lyuboyn.cpp:9:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |  for (int i = 0; i < s.length(); ++i) {
      |                  ~~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Fail, not exactly k bits are different: line = 0
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 604 KB Found solution while it does not exist
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 36 ms 6580 KB Ok
2 Correct 18 ms 3280 KB Ok
3 Correct 1 ms 344 KB Ok
4 Correct 0 ms 348 KB Ok
5 Correct 0 ms 348 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Fail, not exactly k bits are different: line = 0
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 46 ms 6500 KB Fail, not exactly k bits are different: line = 0
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 36 ms 6580 KB Ok
2 Correct 18 ms 3280 KB Ok
3 Correct 1 ms 344 KB Ok
4 Correct 0 ms 348 KB Ok
5 Correct 0 ms 348 KB Ok
6 Incorrect 1 ms 348 KB Fail, not exactly k bits are different: line = 0
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 19 ms 3280 KB Fail, not exactly k bits are different: line = 0
2 Halted 0 ms 0 KB -