This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#ifdef LIS05ST
    #define _GLIBCXX_DEBUG
    #define _GLIBCXX_DEBUG_PEDANTIC
#endif
//#pragma GCC optimize("O3")
//#pragma GCC target("avx2,popcnt,lzcnt,bmi,bmi2")
#include"bits/stdc++.h"
using namespace std;
    
typedef long long ll;
typedef long double ld;
    
const int NMAX=1000;
vector<int>g[NMAX+5];
int p[NMAX+5];
int lbl[NMAX+5];
bool used[NMAX+5];
    
void dfs(int v,int l){
    lbl[v]=l;
    used[v]=1;
    l*=2;
    for(auto u:g[v]){
        if(used[u])continue;
        dfs(u,++l);
    }
}
    
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v){
    for(int i=0;i<n;i++){
        p[i]=0;
        used[i]=0;
        lbl[i]=0;
        g[i].clear();
    }
    for(int i=0;i<n-1;i++){
        g[v[i]].push_back(u[i]);
        g[u[i]].push_back(v[i]);
    }
    dfs(0,0);
    vector<int>ans(n);
    for(int i=0;i<n;i++)ans[i]=lbl[i];
    return ans;
};
int find_next_station(int s, int t, std::vector<int> c){
    s++;
    t++;
    for(auto&e:c)e++;
    for(auto u:c){
        if(t<=s&&u<=s){
            return u-1;
        }
        if(t<=s)continue;
        ll x=u;
        for(int i=0;i<64;i++){
            if((x&t)==t)return u-1;
            x<<=1;
            x|=1;
            if(x>t)break;
        }
    }for(auto u:c){
        if(u<=s){
            return u-1;
        }
    }
};
    
#define MULTITESTS false
void solve(int testCase){
    
}
    
    
void precalc(){
    
}
/*
signed main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    precalc();
    int t=1;
    if(MULTITESTS)cin>>t;
    for(int i=1;i<=t;i++){
        auto t1=clock();
        solve(i);
        auto t2=clock();
        float delta=t2-t1;
        delta/=CLOCKS_PER_SEC;
        #ifdef LIS05ST
        cout<<"("<<i<<")------------"<<fixed<<setprecision(2)<<delta<<"s\n";
        #endif
    }
}*/
Compilation message (stderr)
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:66:1: warning: control reaches end of non-void function [-Wreturn-type]
   66 | };
      | ^| # | 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... |