#include "stations.h"
#include <bits/stdc++.h>
using namespace std;
void check(bool bl)
{
if(bl==0)
while(1);
}
vector<int> con[1005];
vector<int> sol;
int timer;
void dfs(int nod, int par)
{
sol[nod] = timer++;
for(int adj:con[nod])
{
if(adj==par)
continue;
dfs(adj,nod);
}
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v)
{
sol.resize(n);
for(int i=0;i<n;i++)
con[i].clear();
for(int i=0;i<n-1;i++)
{
con[u[i]].push_back(v[i]);
con[v[i]].push_back(u[i]);
}
int root=0;
for(int i=0;i<n;i++)
if(con[i].size() < con[root].size())
root = i;
timer=0;
dfs(root,-1);
return sol;
}
int find_next_station(int s, int t, std::vector<int> c)
{
if((int)c.size() == 1)
return c[0];
for(int i=1;i<c.size();i++)
check(c[i-1] <= c[i]);
if(c[0] == s+1)///s e radacina
{
check(s==0);
check(t > s);
for(int i=1;i<c.size();i++)
if(c[i] > t)
return c[i-1];
return c.back();
}
else
{
check(c[1] == s+1);
if(t < s)
return c[0];
assert(c[1] <= t);
for(int i=2;i<c.size();i++)
if(c[i] > t)
return c[i-1];
return c.back();
}
}
# | 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... |