#include <bits/stdc++.h>
#include "speedrun.h"
using namespace std;
int n;
vector<int> g[1005];
int preord[1005], cr;
void dfs(int nod, int tata)
{
preord[++cr] = nod;
for (int i = 0; i < 10; i++)
setHint(nod, i + 1, (bool)(tata & (1 << i)));
for (auto vecin : g[nod])
if (vecin != tata)
dfs(vecin, nod);
}
void assignHints(int subtask, int N, vector<int> A, vector<int> B)
{
setHintLen(20);
n = N;
for (int i = 1; i < n; i++)
{
g[A[i]].push_back(B[i]);
g[B[i]].push_back(A[i]);
}
dfs(1, 0);
for (int i = 1; i <= n; i++)
{
int nd = preord[i], urm = preord[i % n + 1];
for (int j = 10; j < 20; j++)
setHint(nd, j + 1, (bool)(urm & (1 << (j - 10))));
}
}
int u()
{
int x = 0;
for (int i = 10; i < 20; i++)
{
if (getHint(i + 1))
x += (1 << (i - 10));
}
return x;
}
int tt()
{
int x = 0;
for (int i = 0; i < 10; i++)
{
if (getHint(i + 1))
x += (1 << i);
}
return x;
}
void speedrun(int subtask, int N, int start)
{
int nod = start;
n = N;
while (true)
{
int trg = u();
if (trg == start)
break;
while (true)
{
if (nod == trg)
break;
if (goTo(trg))
{
nod = trg;
break;
}
goTo(tt());
nod = tt();
}
}
}
Compilation message
/usr/bin/ld: /tmp/ccbUT5YF.o: in function `main':
stub.cpp:(.text.startup+0x1d1): undefined reference to `assignHints(int, int, int*, int*)'
collect2: error: ld returned 1 exit status