#include<bits/stdc++.h>
#include "speedrun.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)
{
if (!visited[cur])
{
get_val(cur);
visited[cur] = true;
}
// cerr << current_node << " " << cur << " " << Hint[cur].first << " " << Hint[cur].second << "\n";
if (tin[cur] == n)
{
while(cur != 1)
{
if (!visited[cur])
{
get_val(cur);
visited[cur] = true;
}
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
speedrun.cpp: In function 'void speedrun(int, int, int)':
speedrun.cpp:62:6: warning: unused variable 'l' [-Wunused-variable]
62 | int l = getLength();
| ^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
175 ms |
688 KB |
Used too many wrong interactions |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
191 ms |
816 KB |
Output is correct |
2 |
Correct |
182 ms |
660 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
130 ms |
660 KB |
Used too many wrong interactions |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
494 ms |
676 KB |
Used too many wrong interactions |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
211 ms |
660 KB |
Used too many wrong interactions |
2 |
Halted |
0 ms |
0 KB |
- |