Submission #471395

# Submission time Handle Problem Language Result Execution time Memory
471395 2021-09-08T22:04:03 Z aZvezda "The Lyuboyn" code (IZhO19_lyuboyn) C++14
14 / 100
314 ms 6504 KB
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
typedef long long ll;

vector<int> build(int n, int k) {
	if(k == 1) {
		if(n == 1) {
			return {0, 1};
		}
		auto ans = build(n - 1, k);
		auto cpy = ans;
		reverse(cpy.begin(), cpy.end());
		vector<int> ret;
		for(auto it : ans) {
			ret.push_back(it * 2);
		}
		for(auto it : cpy) {
			ret.push_back(it * 2 + 1);
		}
		return ret;
	}
	auto ans = build(n - 2, k - 2);
	auto cpy = ans;
	reverse(cpy.begin(), cpy.end());
	vector<int> ret;

	for(int i = 0; i < ans.size(); i ++) {
		auto it = ans[i];
		if(i & 1) {
			ret.push_back(it * 4 + 0);		
		} else {
			ret.push_back(it * 4 + 3);					
		}
	}

	for(int i = 0; i < cpy.size(); i ++) {
		auto it = cpy[i];
		if(i & 1) {
			ret.push_back((it ^ ((1 << (k - 1)) - 1)) * 4 + 1);		
		} else {
			ret.push_back((it ^ ((1 << (k - 1)) - 1)) * 4 + 2);		
		}
	}

	for(int i = 0; i < ans.size(); i ++) {
		auto it = ans[i];
		if(i & 1) {
			ret.push_back(it * 4 + 3);		
		} else {
			ret.push_back(it * 4 + 0);					
		}
	}

	for(int i = 0; i < cpy.size(); i ++) {
		auto it = cpy[i];
		if(i & 1) {
			ret.push_back((it ^ (1 << (k - 1))) * 4 + 2);		
		} else {
			ret.push_back((it ^ (1 << (k - 1))) * 4 + 1);		
		}
	}
	return ret;
}

signed main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	int n, k, t, s = 0;
	cin >> n >> k >> t;

	if(k % 2 == 0) {
		cout << -1 << endl;
		return 0;
	}

	string str;
	cin >> str;
	int w = 1;
	for(auto it : str) {
		s = s + (it - '0') * w;
		w *= 2;
	}

	auto ans = build(n, k);
	s = ans[0] ^ s;

	cout << ans.size() << endl;
	for(auto it : ans) {
		int real = it ^ s;
		for(int i = 0; i < n; i ++) {
			cout << (bool)(real & (1 << i));
		}
		cout << endl;
	}
	return 0;
}

Compilation message

lyuboyn.cpp: In function 'std::vector<int> build(int, int)':
lyuboyn.cpp:28:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |  for(int i = 0; i < ans.size(); i ++) {
      |                 ~~^~~~~~~~~~~~
lyuboyn.cpp:37:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |  for(int i = 0; i < cpy.size(); i ++) {
      |                 ~~^~~~~~~~~~~~
lyuboyn.cpp:46:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |  for(int i = 0; i < ans.size(); i ++) {
      |                 ~~^~~~~~~~~~~~
lyuboyn.cpp:55:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |  for(int i = 0; i < cpy.size(); i ++) {
      |                 ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Fail, not exactly k bits are different: line = 11
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Ok
2 Correct 1 ms 204 KB Ok
3 Correct 0 ms 204 KB Ok
4 Correct 0 ms 204 KB Ok
5 Correct 0 ms 204 KB Ok
6 Correct 0 ms 204 KB Ok
7 Correct 0 ms 204 KB Ok
8 Correct 0 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 305 ms 6504 KB Ok
2 Correct 146 ms 3212 KB Ok
3 Correct 1 ms 332 KB Ok
4 Correct 0 ms 204 KB Ok
5 Correct 0 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB The values in the output sequence are not pairwise distinct!
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 314 ms 6468 KB The values in the output sequence are not pairwise distinct!
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 305 ms 6504 KB Ok
2 Correct 146 ms 3212 KB Ok
3 Correct 1 ms 332 KB Ok
4 Correct 0 ms 204 KB Ok
5 Correct 0 ms 204 KB Ok
6 Incorrect 1 ms 204 KB The values in the output sequence are not pairwise distinct!
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 147 ms 3380 KB The values in the output sequence are not pairwise distinct!
2 Halted 0 ms 0 KB -