답안 #100969

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
100969 2019-03-15T14:08:36 Z square1001 질문 (CEOI14_question_grader) C++14
60 / 100
2423 ms 79504 KB
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
static bool first_encode = true;
vector<vector<int> > perm_encode;
int encode(int n, int x, int y) {
	if (first_encode) {
		string perm = string(7, 'o') + string(7, 'x');
		do {
			vector<int> v;
			for (int i = 0; i < 14; ++i) {
				if (perm[i] == 'o') v.push_back(i);
			}
			perm_encode.push_back(v);
		} while (next_permutation(perm.begin(), perm.end()));
		first_encode = false;
	}
	vector<int> a = perm_encode[x];
	vector<int> b = perm_encode[y];
	for (int i : a) {
		if (find(b.begin(), b.end(), i) == b.end()) {
			return i + 1;
		}
	}
	return -1;
}
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
static bool first_decode = true;
vector<vector<int> > perm_decode;
int decode(int n, int q, int h) {
	if (first_decode) {
		string perm = string(7, 'o') + string(7, 'x');
		do {
			vector<int> v;
			for (int i = 0; i < 14; ++i) {
				if (perm[i] == 'o') v.push_back(i);
			}
			perm_decode.push_back(v);
		} while (next_permutation(perm.begin(), perm.end()));
		first_decode = false;
	}
	vector<int> a = perm_decode[q];
	if (find(a.begin(), a.end(), h - 1) != a.end()) return 1;
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2423 ms 79312 KB Output is partially correct - maxh = 14
2 Partially correct 2215 ms 79504 KB Output is partially correct - maxh = 14