#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
void dfs(int x, int p, int& i,int d, vector<int>& labels,vector<vector<int>>& adj){
if(d%2 == 0) labels[x] = i++;
for(auto node : adj[x]){
if(node == p) continue;
dfs(node,x,i,d+1,labels,adj);
}
if(d%2 == 1) labels[x] = i++;
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
vector<vector<int>> adj(n);
for(int i = 0; i< u.size(); i++){
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
std::vector<int> labels(n);
int i = 0;
dfs(0,0,i,0,labels,adj);
return labels;
}
int find_next_station(int s, int t, std::vector<int> c) {
if(c[0] < s){
if(s < t) return c[0];
for(int i = c.size()-1; i >= 0; i--){
if(c[i] <= t) return c[i];
}
return c[0];
}
else{
reverse(c.begin(),c.end());
if(t < s) return c[0];
for(int i = c.size()-1; i>= 0; i--){
if(t <= c[i]) return c[i];
}
return c[0];
}
}