Submission #911197

# Submission time Handle Problem Language Result Execution time Memory
911197 2024-01-18T15:25:44 Z daoquanglinh2007 "The Lyuboyn" code (IZhO19_lyuboyn) C++17
83 / 100
214 ms 8800 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 == 5){
			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 0 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Ok
2 Correct 22 ms 3644 KB Ok
3 Correct 6 ms 2140 KB Ok
4 Correct 0 ms 348 KB Ok
5 Correct 0 ms 348 KB Ok
6 Correct 1 ms 344 KB Ok
7 Correct 1 ms 348 KB Ok
8 Correct 9 ms 2012 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 214 ms 8436 KB Ok
2 Correct 84 ms 4440 KB Ok
3 Correct 1 ms 504 KB Ok
4 Correct 1 ms 596 KB Ok
5 Correct 0 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Ok
2 Correct 4 ms 604 KB Ok
3 Correct 85 ms 4436 KB Ok
4 Correct 40 ms 2380 KB Ok
5 Correct 1 ms 348 KB Ok
6 Correct 1 ms 348 KB Ok
7 Correct 19 ms 1496 KB Ok
8 Correct 0 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 187 ms 8800 KB Ok
2 Correct 171 ms 8616 KB Ok
3 Correct 176 ms 8640 KB Ok
4 Correct 80 ms 4440 KB Ok
5 Correct 82 ms 4436 KB Ok
6 Correct 38 ms 2392 KB Ok
7 Correct 40 ms 2388 KB Ok
8 Correct 18 ms 1396 KB Ok
9 Correct 19 ms 1368 KB Ok
10 Correct 9 ms 1112 KB Ok
11 Correct 1 ms 348 KB Ok
12 Correct 1 ms 348 KB Ok
13 Correct 1 ms 348 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 214 ms 8436 KB Ok
2 Correct 84 ms 4440 KB Ok
3 Correct 1 ms 504 KB Ok
4 Correct 1 ms 596 KB Ok
5 Correct 0 ms 348 KB Ok
6 Correct 0 ms 348 KB Ok
7 Correct 4 ms 604 KB Ok
8 Correct 85 ms 4436 KB Ok
9 Correct 40 ms 2380 KB Ok
10 Correct 1 ms 348 KB Ok
11 Correct 1 ms 348 KB Ok
12 Correct 19 ms 1496 KB Ok
13 Correct 0 ms 348 KB Ok
14 Correct 187 ms 8800 KB Ok
15 Correct 171 ms 8616 KB Ok
16 Correct 176 ms 8640 KB Ok
17 Correct 80 ms 4440 KB Ok
18 Correct 82 ms 4436 KB Ok
19 Correct 38 ms 2392 KB Ok
20 Correct 40 ms 2388 KB Ok
21 Correct 18 ms 1396 KB Ok
22 Correct 19 ms 1368 KB Ok
23 Correct 9 ms 1112 KB Ok
24 Correct 1 ms 348 KB Ok
25 Correct 1 ms 348 KB Ok
26 Correct 1 ms 348 KB Ok
27 Correct 187 ms 8564 KB Ok
28 Correct 94 ms 4420 KB Ok
29 Correct 201 ms 8720 KB Ok
30 Correct 9 ms 860 KB Ok
31 Correct 1 ms 544 KB Ok
32 Correct 5 ms 600 KB Ok
33 Correct 21 ms 1388 KB Ok
34 Correct 1 ms 344 KB Ok
35 Correct 1 ms 348 KB Ok
36 Correct 1 ms 348 KB Ok
37 Correct 0 ms 348 KB Ok
38 Correct 94 ms 4272 KB Ok
# Verdict Execution time Memory Grader output
1 Correct 96 ms 4304 KB Ok
2 Correct 195 ms 8496 KB Ok
3 Correct 192 ms 8432 KB Ok
4 Correct 9 ms 860 KB Ok
5 Correct 1 ms 348 KB Ok
6 Correct 20 ms 1372 KB Ok
7 Correct 180 ms 8524 KB Ok
8 Incorrect 1 ms 344 KB Expected integer, but "MMB" found
9 Halted 0 ms 0 KB -