#include "stations.h"
//#include "stub.cpp"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define all(x) x.begin(),x.end()
#define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
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<n-1;i++){
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
vector<int> st(n),en(n);
int timer=-1;
function<void(int,int)> dfs=[&](int v,int p){
st[v]=++timer;
for(auto u:adj[v]){
if(u==p) continue;
dfs(u,v);
}
en[v]=timer;
};
int root=0;
for(int i=0;i<n;i++){
if((int)adj[i].size()==1) root=i;
}
dfs(root,-1);
vector<int> label(n);
for(int i=0;i<n;i++){
label[i]=i+1;
//cout<<i<<' '<<label[i]<<'\n';
}
return label;
}
int find_next_station(int s, int t, std::vector<int> C) {
int a=__builtin_clz(s);
int b=__builtin_clz(t);
//cout<<s<<' '<<t<<'\n';
if(a>b and (t>>(a-b))==s){
//cout<<"b"<<'\n';
for(auto v:C){
int c=__builtin_clz(v);
if(c==a-1 and c>=b and (t>>(c-b))==v){
return v;
}
}
}
else{
for(auto v:C){
int c=__builtin_clz(v);
if(c>a) return v;
}
}
//cout<<s<<' '<<t<<'\n';
}
Compilation message (stderr)
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:59:1: warning: control reaches end of non-void function [-Wreturn-type]
59 | }
| ^
# | 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... |