#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);
std::vector<std::vector<std::pair<int, int>>> adj(N);
for (int i = 0; i < M; ++i) {
adj[U[i]].push_back({V[i], i});
adj[V[i]].push_back({U[i], 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 (auto [i, edge_idx] : adj[u]) {
if (vis[i]) {
continue;
}
vis[i] = true;
dep[i] = dep[u] + 1;
x[edge_idx] = dep[i] % 2;
q.push(i);
}
}
return x;
}
#include "Catherine.h"
#include <algorithm>
#include <vector>
namespace {
int A, B;
int prev = 0;
} // 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 < 2; ++i) {
for (int j = 0; j < y[i]; ++j) {
vals.push_back(i);
}
}
if (vals.empty()) {
return -1;
}
int max = *std::max_element(vals.begin(), vals.end());
int min = *std::min_element(vals.begin(), vals.end());
if (min == max) {
return prev = min;
}
prev = !prev;
return prev;
}
| # | 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... |