#include "Anthony.h"
#include <queue>
#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);
}
}
for (int i = 0; i < M; ++i) {
x[i] = std::min(dep[U[i]], dep[V[i]]) % 3;
}
return x;
}
#include "Catherine.h"
#include <algorithm>
#include <vector>
namespace {
int A, B;
} // namespace
void Init(int A, int B) {
::A = A;
::B = B;
}
int Move(std::vector<int> y) {
std::vector<int> vals;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < y[i]; ++j) {
vals.push_back(i);
}
}
int max = *std::max_element(vals.begin(), vals.end());
int min = *std::min_element(vals.begin(), vals.end());
if (max - min <= 1) {
return min;
}
return max;
}
# | 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... |