#include "stations.h"
#include<bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define vi vector<int>
#define f0r(i,n) for(int i = 0; i<n; i++)
#define FOR(i, k, n) for(int i = k; i<n; i++)
#define dout(x) cout<<x<<' '<<#x<<'\n';
#define vout(x) for(auto u : x)cout<<u<<' '; cout<<'\n';
#define vb vector<bool>
using namespace std;
const int mxn = 1005;
vector<vi>adj(mxn);
int timer = 0;
vi tin(mxn), tout(mxn),dep(mxn);
void dfs(int node, int from){
tin[node] = timer++;
for(auto u : adj[node])if(u != from)dep[u]=dep[node]+1,dfs(u,node);
tout[node] = timer++;
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
f0r(i,n){
adj[i].clear(),tin[i]=0,tout[i]=0,dep[i]=0;
} timer = 0;
vi deg(n);
f0r(i,n-1){
adj[u[i]].pb(v[i]);
adj[v[i]].pb(u[i]);
}
dfs(0,-1); map<int,int>cmp; vi w;
std::vector<int> labels(n); f0r(v,n)if(dep[v]%2==0)w.pb(tin[v]); else w.pb(tout[v]); sort(w.begin(),w.end()); f0r(i,n)cmp[w[i]]=i;
f0r(v,n)if(dep[v]%2==0)labels[v]=cmp[tin[v]];else labels[v]=cmp[tout[v]];
return labels;
}
int find_next_station(int s, int t, std::vector<int> c) {
int ist = 0; if(c[0] > s)ist = 1; sort(c.begin(),c.end());
if(ist){
f0r(i,c.size()-1){
if(t > s && t <= c[i])return c[i];
} return c.back();
}
else{
reverse(c.begin(),c.end());
f0r(i,c.size()-1){
if(t < s && t >= c[i])return c[i];
}
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... |