#include"stations.h"
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1024;
vector<int> ds[MAXN];
int tag[MAXN],dis[MAXN],tdfs=0;
void dfs(int i,int pre)
{
if(dis[i]%2==0) tag[i]=++tdfs;
for(auto v:ds[i]) if(v!=pre)
{
dis[v]=dis[i]+1;
dfs(v,i);
}
if(dis[i]%2==1) tag[i]=++tdfs;
}
vector<int> label(int n,int k,vector<int> u,vector<int> v)
{
tdfs=0;
vector<int> labels(n);
for(int i=0;i<n-1;i++) ds[u[i]].push_back(v[i]),ds[v[i]].push_back(u[i]);
dfs(0,0);
for(int i=0;i<n;i++) labels[i]=tag[i],ds[i].clear();
return labels;
}
int find_next_station(int s,int t,vector<int> c)
{
if(s<c[0])
{
int pre=s;
for(int j=0;j<c.size()-1;j++) if(pre<t&&t<=c[j]) return c[j];
return c[c.size()-1];
}
else
{
int pre=s;
for(int j=c.size()-1;j>0;j--) if(pre>t&&t>=c[j]) return c[j];
return c[0];
}
}
# | 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... |