#include "stations.h"
#include <bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(), (x).end()
using pii = pair<int, int>;
int timer;
vector<int> tin, tout;
vector<pii> rv2;
vector<vector<int>> adj;
void dfs(int node, int p, int md2){
timer++;
tin[node]=timer;
for(auto thing:adj[node]){
if(thing!=p)dfs(thing, node, md2^1);
}
timer++;
tout[node]=timer;
rv2[node].first=(md2==0? tin[node]: tout[node]);
}
vector<int> label(int n, int k, vector<int> u, vector<int> v){
tin.assign(n, 0);tout.assign(n,0);rv2.assign(n, {0, 0});adj.assign(n, {});
timer=0;
for(int i = 0;i<n-1;i++){
rv2[i].second=i;
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
rv2[n-1].second=n-1;
dfs(0, -1, 0);
sort(all(rv2));
vector<int> reala(n);
for(int i = 0;i<n;i++){
reala[rv2[i].second]=i;
}
return reala;
}
int find_next_station(int s, int t, vector<int> c){
if(c.size()==1)return c[0];
int n = c.size();
for(auto thing:c)if(thing==t)return t;
if (s<c[0]){
//s entry c exits
int mye = c[n-2];
if (t<s || t>mye)return c[n-1];
for(auto thing:c)if(thing>=t)return thing;
}
else{
int mye = c[1];
if (t<mye || t>s)return c[0];
for(int i = c.size()-1;i>=0;i--)if(c[i]<=t)return c[i];
}
}
Compilation message (stderr)
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:53:1: warning: control reaches end of non-void function [-Wreturn-type]
53 | }
| ^
# | 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... |