#include <bits/stdc++.h>
using namespace std;
bool breakb = false;
vector<int> out;
int m;
void shuffle(int x, int pos, int par){
//cout << x << ' ' << pos << ' ' << par << "\n";
if(breakb) return;
if(pos >= 12){
out.push_back(par);
if(out.size() > m)
breakb = true;
return;
}
if(x)
shuffle(x - 1, pos + 1, par ^ (1 << pos));
if(12 - pos > x)
shuffle(x, pos + 1, par);
}
int encode(int n, int x, int y){
ios_base::sync_with_stdio(false);
m = n;
shuffle(6, 0, 0);
for (int i = 0; i < 12; i++)
if ((out[x] & (1 << i)) && (!(out[y] & (1 << i))))
return i+1;
}
#include <bits/stdc++.h>
using namespace std;
bool breakb = false;
vector<int> out;
int m;
void shuffle(int x, int pos, int par){
//cout << x << ' ' << pos << ' ' << par << "\n";
if(breakb) return;
if(pos >= 12){
out.push_back(par);
if(out.size() > m)
breakb = true;
return;
}
if(x)
shuffle(x - 1, pos + 1, par ^ (1 << pos));
if(12 - pos > x)
shuffle(x, pos + 1, par);
}
int decode(int n, int q, int h){
ios_base::sync_with_stdio(false);
m = n;
shuffle(6, 0, 0);
if(out[q] & (1 << (h - 1))) return 1;
return 0;
}
Compilation message
encoder.cpp: In function 'void shuffle(int, int, int)':
encoder.cpp:18:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
18 | if(out.size() > m)
| ~~~~~~~~~~~^~~
encoder.cpp: In function 'int encode(int, int, int)':
encoder.cpp:40:1: warning: control reaches end of non-void function [-Wreturn-type]
40 | }
| ^
decoder.cpp: In function 'void shuffle(int, int, int)':
decoder.cpp:18:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
18 | if(out.size() > m)
| ~~~~~~~~~~~^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4782 ms |
24184 KB |
Output is correct - maxh = 12 |
2 |
Correct |
4277 ms |
24248 KB |
Output is correct - maxh = 12 |