This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// M
#include<bits/stdc++.h>
#include "Anthony.h"
using namespace std;
const int N = 21234;
int D[N];
vector < int > Adj[N];
vector < int > Sub(int n, int m, int A, int B, vector < int > U, vector < int > V)
{
assert(B == 0 && A >= 3);
for (int i = 0; i < m; i ++)
Adj[U[i]].push_back(V[i]), Adj[V[i]].push_back(U[i]);
memset(D, -1, sizeof(D));
queue < int > qu;
qu.push(0); D[0] = 0;
while (qu.size())
{
int v = qu.front();
qu.pop();
for (int u : Adj[v])
if (D[u] == -1)
D[u] = D[v] + 1, qu.push(u);
}
vector < int > C(m, 0);
for (int i = 0; i < m; i ++)
{
int d = min(D[V[i]], D[U[i]]);
C[i] = d % 3;
}
return C;
}
vector < int > Mark(int n, int m, int A, int B, vector < int > U, vector < int > V)
{
if (B == 0)
return Sub(n, m, A, B, U, V);
assert(0);
}
// M
#include<bits/stdc++.h>
#include "Catherine.h"
using namespace std;
const int N = 21234;
int cA, cB;
void Init(int A, int B)
{
cA = A;
cB = B;
}
int Move2(vector < int > Freq)
{
assert(cB == 0 && cA >= 3);
int c = 0;
for (int a : Freq)
if (a) c ++;
if (c == 1 && Freq[0])
return 0;
if (c == 1 && Freq[1])
return 1;
if (c == 1 && Freq[2])
return 2;
assert(c == 2);
if (Freq[0] && Freq[1])
return 0;
if (Freq[0])
return 2;
return 1;
}
int Move(vector < int > Freq)
{
if (cB == 0)
return Move2(Freq);
assert(0);
}
# | 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... |