Submission #499797

# Submission time Handle Problem Language Result Execution time Memory
499797 2021-12-29T13:07:25 Z NachoLibre "The Lyuboyn" code (IZhO19_lyuboyn) C++17
100 / 100
60 ms 7432 KB
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
using namespace std;

string str(int x, int n) {
	string s;
	for(int i = n - 1; i >= 0; --i) { s += '0' + !!(x & 1 << i); }
	return s;
}
int num(string s) {
	int x = 0;
	for(int i = 0; i < sz(s); ++i) { x <<= 1; x |= s[i] == '1'; }
	return x;
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n, k, t;
	string S;
	cin >> n >> k >> t >> S;
	int s = num(S);
	if(k % 2 == 0) return cout << -1 << endl, 0;
	vector<int> v{0};
	for(int i = 1; i < k + 1; ++i) {
		v.push_back(i);
		for(int j = sz(v) - 2; j >= 0; --j) {
			v.push_back(v[j]);
		}
	}
	vector<int> fp{0};
	for(int i : v) {
		fp.push_back(fp.back() ^ (1 << k + 1) - 1 ^ 1 << i);
	}
	for(int i = k + 1; i < n; ++i) {
		for(int j = sz(fp) - 1; j >= 0; --j) {
			fp.push_back(fp[j] ^ 1 << i ^ (1 << k - 1) - 1);
		}
	}
	cout << (1 << n) << endl;
	for(int x : fp) {
		cout << str(x ^ s, n) + "\n";
	}
	return 0;
}

Compilation message

lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:36:36: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
   36 |   fp.push_back(fp.back() ^ (1 << k + 1) - 1 ^ 1 << i);
      |                                  ~~^~~
lyuboyn.cpp:36:41: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   36 |   fp.push_back(fp.back() ^ (1 << k + 1) - 1 ^ 1 << i);
      |                            ~~~~~~~~~~~~~^~~
lyuboyn.cpp:40:42: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
   40 |    fp.push_back(fp[j] ^ 1 << i ^ (1 << k - 1) - 1);
      |                                        ~~^~~
lyuboyn.cpp:40:47: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   40 |    fp.push_back(fp[j] ^ 1 << i ^ (1 << k - 1) - 1);
      |                                  ~~~~~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Ok
2 Correct 0 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 53 ms 6368 KB Ok
2 Correct 27 ms 3220 KB Ok
3 Correct 0 ms 204 KB Ok
4 Correct 0 ms 204 KB Ok
5 Correct 1 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Ok
2 Correct 1 ms 460 KB Ok
3 Correct 24 ms 3276 KB Ok
4 Correct 12 ms 1768 KB Ok
5 Correct 0 ms 204 KB Ok
6 Correct 1 ms 332 KB Ok
7 Correct 8 ms 972 KB Ok
8 Correct 0 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 53 ms 6476 KB Ok
2 Correct 49 ms 6432 KB Ok
3 Correct 60 ms 6352 KB Ok
4 Correct 23 ms 3244 KB Ok
5 Correct 26 ms 3300 KB Ok
6 Correct 11 ms 1744 KB Ok
7 Correct 17 ms 1784 KB Ok
8 Correct 5 ms 972 KB Ok
9 Correct 5 ms 1100 KB Ok
10 Correct 2 ms 588 KB Ok
11 Correct 0 ms 332 KB Ok
12 Correct 0 ms 204 KB Ok
13 Correct 0 ms 204 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 53 ms 6368 KB Ok
2 Correct 27 ms 3220 KB Ok
3 Correct 0 ms 204 KB Ok
4 Correct 0 ms 204 KB Ok
5 Correct 1 ms 204 KB Ok
6 Correct 0 ms 204 KB Ok
7 Correct 1 ms 460 KB Ok
8 Correct 24 ms 3276 KB Ok
9 Correct 12 ms 1768 KB Ok
10 Correct 0 ms 204 KB Ok
11 Correct 1 ms 332 KB Ok
12 Correct 8 ms 972 KB Ok
13 Correct 0 ms 204 KB Ok
14 Correct 53 ms 6476 KB Ok
15 Correct 49 ms 6432 KB Ok
16 Correct 60 ms 6352 KB Ok
17 Correct 23 ms 3244 KB Ok
18 Correct 26 ms 3300 KB Ok
19 Correct 11 ms 1744 KB Ok
20 Correct 17 ms 1784 KB Ok
21 Correct 5 ms 972 KB Ok
22 Correct 5 ms 1100 KB Ok
23 Correct 2 ms 588 KB Ok
24 Correct 0 ms 332 KB Ok
25 Correct 0 ms 204 KB Ok
26 Correct 0 ms 204 KB Ok
27 Correct 49 ms 7376 KB Ok
28 Correct 25 ms 3396 KB Ok
29 Correct 47 ms 6444 KB Ok
30 Correct 3 ms 588 KB Ok
31 Correct 0 ms 332 KB Ok
32 Correct 1 ms 460 KB Ok
33 Correct 8 ms 1100 KB Ok
34 Correct 1 ms 204 KB Ok
35 Correct 0 ms 204 KB Ok
36 Correct 0 ms 204 KB Ok
37 Correct 0 ms 204 KB Ok
38 Correct 23 ms 3480 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 25 ms 3556 KB Ok
2 Correct 55 ms 7432 KB Ok
3 Correct 47 ms 6388 KB Ok
4 Correct 2 ms 588 KB Ok
5 Correct 1 ms 204 KB Ok
6 Correct 7 ms 1100 KB Ok
7 Correct 50 ms 6340 KB Ok
8 Correct 1 ms 332 KB Ok
9 Correct 0 ms 204 KB Ok
10 Correct 1 ms 332 KB Ok
11 Correct 12 ms 1996 KB Ok
12 Correct 32 ms 3296 KB Ok