#include<bits/stdc++.h>
#include "speedrun.h"
using namespace std;
int n = 0,cnt = 0;
vector<int> vis;
vector<int> sira;
vector<vector<int>> a(n+1);
void dfs(int s,int anne)
{
sira.push_back(s);
for(int x=1;x<=10;x++)
{
if((1<<(x-1))&anne)
{
setHint(s,x,true);
}
}
for(int x:a[s])
{
if(x!=anne) dfs(x,s);
}
}
void assignHints(int subtask, int N, int A[], int B[])
{
int n = N;
a.resize(n+1);
for(int i=1;i<n;i++)
{
int u = A[i];
int v = B[i];
a[u].push_back(v);
a[v].push_back(u);
}
setHintLen(20);
dfs(1,0);
for(int i=0;i<n;i++)
{
if(i>0)
{
//int kendi = sira[i];
}
if(i<n-1)
{
//cout << i << " "<< sira.size() << endl;
int cocuk = sira[i+1];
for(int x=1;x<=10;x++)
{
if((1<<(x-1))&cocuk)
{
setHint(sira[i],x+10,true);
}
}
}
}
}
int atabul()
{
int cur = 0;
for(int i=1;i<=10;i++)
{
if(getHint(i))
{
cur+= (1<<(i-1));
}
}
return cur;
}
int cocukbul()
{
int cur = 0;
for(int i=1;i<=10;i++)
{
if(getHint(i+10))
{
cur+= (1<<(i-1));
}
}
return cur;
}
void speedrun(int subtask, int N, int start)
{
n = N;
int s = start;
int cur = atabul();
int eski = start;
while(cur!=0)
{
//cout << eski << " "<< cur << endl;
goTo(cur);
int nw = atabul();
eski = cur;
cur = nw;
}
cur = cocukbul();
while(cur!=0)
{
while(goTo(cur)==false)
{
goTo(atabul());
}
cur = cocukbul();
}
}
| # | 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... |