#include <string>
#include <algorithm>
using namespace std;
static bool first = true;
static string S[925];
int encode (int N, int x, int y) {
if(first) {
first = false;
for(int i = 0; i < 12; i++) S[1] += (i < 6) ? "0" : "1";
for(int i = 2; i <= 920; i++) S[i] = S[i-1], next_permutation(S[i].begin(), S[i].end());
}
for(int i = 0; i < 12; i++) if(S[x][i] == '1' && S[y][i] == '0') return i+1;
return -1;
}
#include <string>
#include <algorithm>
using namespace std;
static bool first = true;
static string S[925];
int decode (int N, int q, int h) {
if(first) {
first = false;
for(int i = 0; i < 12; i++) S[1] += (i < 6) ? "0" : "1";
for(int i = 2; i <= 920; i++) S[i] = S[i-1], next_permutation(S[i].begin(), S[i].end());
}
return S[q][--h] == '1';
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3982 ms |
47920 KB |
Output is correct - maxh = 12 |
2 |
Correct |
5079 ms |
48112 KB |
Output is correct - maxh = 12 |