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<speedrun.h>
#include<bits/stdc++.h>
using namespace std;
const int N = 1005;
int timer = 0;
vector<int> edge[N];
int parent[N] , tin[N] , Euler[N];
void dfs(int u)
{
tin[u] = ++timer;
Euler[timer] = u;
for (int v : edge[u])
{
if (v == parent[u]) continue;
parent[v] = u;
dfs(v);
}
}
void assignHints (int subtask , int n , int eu[] , int ev[])
{
for (int i = 1 ; i < n ; ++i)
{
edge[eu[i]].push_back(ev[i]);
edge[ev[i]].push_back(eu[i]);
}
dfs(1);
setHintLen(20);
for (int u = 1 ; u <= n ; ++u)
{
int v;
if (u != 1)
{
v = parent[u];
for (int j = 0 ; j < 10 ; ++j) setHint(u , j + 1 , v >> j & 1);
}
if (tin[u] == n) v = 1;
else v = Euler[tin[u] + 1];
for (int j = 0 ; j < 10 ; ++j) setHint(u , j + 11 , v >> j & 1);
}
}
pair<int , int> Hint[N];
bool visited[N];
void get_val(int cur)
{
for (int j = 0 ; j < 10 ; ++j) if (getHint(j + 1)) Hint[cur].first ^= 1 << j;
for (int j = 10 ; j < 20 ; ++j) if (getHint(j + 1)) Hint[cur].second ^= 1 << (j - 10);
}
void speedrun(int subtask , int n , int cur)
{
int l = getLength();
int cnt = 1;
while(cnt < n)
{
get_val(cur);
cerr << cur << " " << Hint[cur].first << " " << Hint[cur].second << "\n";
if (tin[cur] == n)
{
while(cur != 1)
{
cerr << cur << "\n";
get_val(cur);
goTo(Hint[cur].first);
cur = Hint[cur].first;
}
}
else
{
int tmp = Hint[cur].second;
while (!goTo(tmp))
{
goTo(Hint[cur].first);
}
cur = tmp;
}
++cnt;
}
}
Compilation message (stderr)
speedrun.cpp: In function 'void speedrun(int, int, int)':
speedrun.cpp:62:6: warning: unused variable 'l' [-Wunused-variable]
62 | int l = getLength();
| ^
# | 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... |