This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "Anthony.h"
using namespace std;
#define all(v) v.begin() ,v.end()
namespace{
vector <vector<pair<int ,int>>> adj;
vector <int> enc ,seq = {0,0,1,0,1,1};
void dfs(int u ,int d=0 ,bool bef=0){
for(auto&e : adj[u]){
adj[e.first].erase(find(all(adj[e.first]) ,make_pair(u ,e.second)));
enc[e.second] = (adj[u].size() == 1? seq[d%6] : bef^1);
dfs(e.first ,d+1 ,enc[e.second]);
}
}
}
vector <int> Mark(int N, int M, int A, int B,vector<int> U,vector<int> V){
assert(M == N-1);
adj.resize(N);
enc.resize(M);
for(int i=0; i<M; i++){
adj[U[i]].push_back({V[i] ,i});
adj[V[i]].push_back({U[i] ,i});
}
dfs(0);
return enc;
}
#include <bits/stdc++.h>
#include "Catherine.h"
using namespace std;
namespace{
int lst;
vector <int> bef ,seq = {0,0,1,0,1,1};
}
void Init(int A, int B) { }
int Move(vector<int> y){
if(y[0] < y[1] && y[0])
return lst = 0;
if(y[1] < y[0] && y[1])
return lst = 1;
if(bef.size() == 6){
for(int t=0; t<6; t++){
if(bef == seq)
return -1;
bef.insert(bef.begin() ,bef.back());
bef.pop_back();
}
}
bef.push_back(lst ^= 1);
return lst;
}
# | 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... |