#include "Anthony.h"
#include <queue>
#include <string>
#include <vector>
std::vector<int> Mark(int N, int M, int A, int B, std::vector<int> U, std::vector<int> V) {
std::vector<int> x(M, -1);
std::vector<std::vector<int>> adj(N);
for (int i = 0; i < M; ++i) {
adj[U[i]].push_back(V[i]);
adj[V[i]].push_back(U[i]);
}
std::vector<bool> vis(N);
std::vector<int> dep(N);
std::queue<int> q;
q.push(0);
vis[0] = true;
while (!q.empty()) {
int u = q.front();
q.pop();
for (int &i : adj[u]) {
if (vis[i]) {
continue;
}
vis[i] = true;
dep[i] = dep[u] + 1;
q.push(i);
}
}
std::string s = "110100";
for (int i = 0; i < M; ++i) {
x[i] = s[std::min(dep[U[i]], dep[V[i]]) % 6] - '0';
}
return x;
}
#include "Catherine.h"
#include <algorithm>
#include <cassert>
#include <string>
#include <vector>
namespace {
int A, B;
bool exploratory = true;
std::string enc;
std::string corr = "110100";
std::vector<std::string> poss;
int prev = 0;
} // namespace
void Init(int A, int B) {
::A = A;
::B = B;
for (int i = 0; i < 6; ++i) {
std::string t;
for (int j = 0; j < 6; ++j) {
t.push_back(corr[(i + j) % 6]);
}
poss.push_back(t);
}
}
int Move(std::vector<int> y) {
auto add = [&](int x) {
enc.push_back(x + '0');
return prev = x;
};
int z = y[0], o = y[1];
auto available = [&]() {
return z == 0;
};
if (z + o == 0) {
exploratory = false;
return -1;
}
if (!exploratory) {
if (z == o) {
return add(!prev);
}
return add(available());
}
if (enc.length() == 6) {
exploratory = false;
auto it = std::find(poss.begin(), poss.end(), enc);
if (it == poss.end()) {
return -1;
}
}
return add(available());
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |