Submission #911194

# Submission time Handle Problem Language Result Execution time Memory
911194 2024-01-18T15:23:50 Z daoquanglinh2007 "The Lyuboyn" code (IZhO19_lyuboyn) C++17
80 / 100
209 ms 8652 KB
#include <bits/stdc++.h>
using namespace std;

#define flipbit(x, i) x ^= (1<<(i))

const int a[] = {0, 7, 9, 2, 5, 8, 3, 4, 10, 1, 6, 11, 12, 16, 23, 13, 17, 22, 15, 19, 20, 14, 18, 21, 24, 31, 39, 32, 43, 25, 30, 38, 33, 42, 27, 28, 36, 35, 40, 26, 29, 37, 34, 41, 46, 50, 53, 44, 48, 55, 45, 49, 54, 59, 60, 47, 57, 62, 51, 61, 58, 52, 63, 56};
const int b[] = {0, 1, 3, 2, 6, 7, 5, 4};

string bS;
int N, K, S, T;
vector <int> v, ans;
int cnt[262144];

vector <int> build(int N){
	if (N == 1){
		vector <int> ans = {0, 1};
		return ans;
	}
	vector <int> a = build(N-1);
	for (int i = 0; i < (1<<(N-1)); i++){
		a.push_back((1<<(N-1))+a[(1<<(N-1))-1-i]);
	}
	return a;
}

void show(int x){
	for (int i = N-1; i >= 0; i--)
		cout << ((x>>i)&1);
	cout << endl;
}

vector <int> build3(int N){
	if (N == 6){
		vector <int> ans(0);
		for (int i = 0; i < 64; i++) ans.push_back(a[i]);
		return ans;
	}
	vector <int> tmp = build3(N-3), ans = tmp;
	for (int i = 1; i < 8; i++){
		int x = ans.back()&((1<<(N-3))-1);
		x ^= (1<<(N-4))+(1<<(N-5));
		for (int j = 0; j < (1<<(N-3)); j++)
			ans.push_back((b[i]<<(N-3))+(x^tmp[j]));
	}
	return ans;
}

int main(){
//	freopen("LYUBOYN.inp", "r", stdin);
//	freopen("LYUBOYN.out", "w", stdout);
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin >> N >> K >> T >> bS;
	for (int i = 0; i < N; i++)
		if (bS[i] == '1') S += (1<<(N-1-i));
		
	v = build(N);
	ans.clear();
	ans.push_back(S);
	for (int i = 1; i < (1<<N); i++){
		ans.push_back(ans[i-1]);
		for (int j = 0; j < N; j++)
			if (((v[i]^v[i-1])>>j)&1){
				for (int t = 0; t < K; t++)
					flipbit(ans[i], (j+t)%N);
			}
	}
	bool ok = 1;
	for (int x : ans){
		if (cnt[x]){
			ok = 0;
			break;
		}
		cnt[x]++;
	}
	if (ok){
		cout << (1<<N) << '\n';
		for (int x : ans){
			for (int i = N-1; i >= 0; i--)
				cout << ((x>>i)&1);
			cout << '\n';
		}
		return 0;
	}
	if (K != 3 || N == 3){
		if (K%3 != 0){
			cout << "MMB" << endl;
		}
		cout << "-1\n";
		return 0;
	}
	ans = build3(N);
	cout << (1<<N) << '\n';
	for (int &x : ans){
		x ^= S;
		for (int i = N-1; i >= 0; i--)
			cout << ((x>>i)&1);
		cout << '\n';
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 348 KB Expected integer, but "MMB" found
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 195 ms 8536 KB Ok
2 Correct 90 ms 4440 KB Ok
3 Correct 1 ms 348 KB Ok
4 Correct 0 ms 348 KB Ok
5 Correct 0 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Ok
2 Correct 5 ms 604 KB Ok
3 Correct 88 ms 4408 KB Ok
4 Correct 40 ms 2388 KB Ok
5 Correct 1 ms 348 KB Ok
6 Correct 2 ms 344 KB Ok
7 Correct 18 ms 1472 KB Ok
8 Correct 1 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 189 ms 8620 KB Ok
2 Correct 183 ms 8448 KB Ok
3 Correct 182 ms 8440 KB Ok
4 Correct 103 ms 4288 KB Ok
5 Correct 82 ms 4260 KB Ok
6 Correct 39 ms 2388 KB Ok
7 Correct 39 ms 2388 KB Ok
8 Correct 18 ms 1496 KB Ok
9 Correct 20 ms 1372 KB Ok
10 Correct 10 ms 860 KB Ok
11 Correct 1 ms 348 KB Ok
12 Correct 1 ms 348 KB Ok
13 Correct 1 ms 344 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 195 ms 8536 KB Ok
2 Correct 90 ms 4440 KB Ok
3 Correct 1 ms 348 KB Ok
4 Correct 0 ms 348 KB Ok
5 Correct 0 ms 348 KB Ok
6 Correct 1 ms 348 KB Ok
7 Correct 5 ms 604 KB Ok
8 Correct 88 ms 4408 KB Ok
9 Correct 40 ms 2388 KB Ok
10 Correct 1 ms 348 KB Ok
11 Correct 2 ms 344 KB Ok
12 Correct 18 ms 1472 KB Ok
13 Correct 1 ms 348 KB Ok
14 Correct 189 ms 8620 KB Ok
15 Correct 183 ms 8448 KB Ok
16 Correct 182 ms 8440 KB Ok
17 Correct 103 ms 4288 KB Ok
18 Correct 82 ms 4260 KB Ok
19 Correct 39 ms 2388 KB Ok
20 Correct 39 ms 2388 KB Ok
21 Correct 18 ms 1496 KB Ok
22 Correct 20 ms 1372 KB Ok
23 Correct 10 ms 860 KB Ok
24 Correct 1 ms 348 KB Ok
25 Correct 1 ms 348 KB Ok
26 Correct 1 ms 344 KB Ok
27 Correct 209 ms 8520 KB Ok
28 Correct 91 ms 4440 KB Ok
29 Correct 205 ms 8484 KB Ok
30 Correct 10 ms 856 KB Ok
31 Correct 1 ms 600 KB Ok
32 Correct 5 ms 604 KB Ok
33 Correct 21 ms 1524 KB Ok
34 Correct 0 ms 344 KB Ok
35 Correct 1 ms 348 KB Ok
36 Correct 1 ms 344 KB Ok
37 Correct 1 ms 344 KB Ok
38 Correct 94 ms 4288 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 103 ms 4316 KB Ok
2 Correct 204 ms 8528 KB Ok
3 Correct 190 ms 8528 KB Ok
4 Correct 10 ms 1112 KB Ok
5 Correct 1 ms 348 KB Ok
6 Correct 21 ms 1448 KB Ok
7 Correct 185 ms 8652 KB Ok
8 Incorrect 0 ms 344 KB Expected integer, but "MMB" found
9 Halted 0 ms 0 KB -