Submission #471397

# Submission time Handle Problem Language Result Execution time Memory
471397 2021-09-08T22:06:43 Z aZvezda "The Lyuboyn" code (IZhO19_lyuboyn) C++14
100 / 100
322 ms 6468 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)) - 1)) * 4 + 2);		
		} else {
			ret.push_back((it ^ ((1 << (k - 1)) - 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 Correct 0 ms 204 KB Ok
# 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 1 ms 204 KB Ok
5 Correct 1 ms 204 KB Ok
6 Correct 0 ms 204 KB Ok
7 Correct 0 ms 204 KB Ok
8 Correct 1 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 310 ms 6384 KB Ok
2 Correct 144 ms 3284 KB Ok
3 Correct 1 ms 332 KB Ok
4 Correct 0 ms 204 KB Ok
5 Correct 1 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Ok
2 Correct 7 ms 460 KB Ok
3 Correct 142 ms 3508 KB Ok
4 Correct 70 ms 1708 KB Ok
5 Correct 1 ms 204 KB Ok
6 Correct 2 ms 332 KB Ok
7 Correct 32 ms 1028 KB Ok
8 Correct 1 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 300 ms 6452 KB Ok
2 Correct 308 ms 6448 KB Ok
3 Correct 304 ms 6404 KB Ok
4 Correct 147 ms 3420 KB Ok
5 Correct 144 ms 3600 KB Ok
6 Correct 68 ms 1832 KB Ok
7 Correct 67 ms 1764 KB Ok
8 Correct 32 ms 980 KB Ok
9 Correct 32 ms 992 KB Ok
10 Correct 15 ms 640 KB Ok
11 Correct 1 ms 332 KB Ok
12 Correct 1 ms 316 KB Ok
13 Correct 1 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 310 ms 6384 KB Ok
2 Correct 144 ms 3284 KB Ok
3 Correct 1 ms 332 KB Ok
4 Correct 0 ms 204 KB Ok
5 Correct 1 ms 204 KB Ok
6 Correct 1 ms 204 KB Ok
7 Correct 7 ms 460 KB Ok
8 Correct 142 ms 3508 KB Ok
9 Correct 70 ms 1708 KB Ok
10 Correct 1 ms 204 KB Ok
11 Correct 2 ms 332 KB Ok
12 Correct 32 ms 1028 KB Ok
13 Correct 1 ms 204 KB Ok
14 Correct 300 ms 6452 KB Ok
15 Correct 308 ms 6448 KB Ok
16 Correct 304 ms 6404 KB Ok
17 Correct 147 ms 3420 KB Ok
18 Correct 144 ms 3600 KB Ok
19 Correct 68 ms 1832 KB Ok
20 Correct 67 ms 1764 KB Ok
21 Correct 32 ms 980 KB Ok
22 Correct 32 ms 992 KB Ok
23 Correct 15 ms 640 KB Ok
24 Correct 1 ms 332 KB Ok
25 Correct 1 ms 316 KB Ok
26 Correct 1 ms 204 KB Ok
27 Correct 322 ms 6396 KB Ok
28 Correct 141 ms 3432 KB Ok
29 Correct 302 ms 6388 KB Ok
30 Correct 15 ms 716 KB Ok
31 Correct 1 ms 332 KB Ok
32 Correct 7 ms 460 KB Ok
33 Correct 32 ms 1040 KB Ok
34 Correct 1 ms 204 KB Ok
35 Correct 1 ms 204 KB Ok
36 Correct 1 ms 320 KB Ok
37 Correct 1 ms 204 KB Ok
38 Correct 142 ms 3340 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 153 ms 3344 KB Ok
2 Correct 299 ms 6468 KB Ok
3 Correct 307 ms 6384 KB Ok
4 Correct 16 ms 716 KB Ok
5 Correct 1 ms 204 KB Ok
6 Correct 32 ms 1092 KB Ok
7 Correct 305 ms 6452 KB Ok
8 Correct 1 ms 332 KB Ok
9 Correct 1 ms 204 KB Ok
10 Correct 1 ms 332 KB Ok
11 Correct 69 ms 1716 KB Ok
12 Correct 150 ms 3376 KB Ok