#include<bits/stdc++.h>
using namespace std;
#define L(i,j,k) for(int i=(j);i<=(k);i++)
#define R(i,j,k) for(int i=(j);i>=(k);i--)
#define sz(v) ((int)(v).size())
#define all(v) (v).begin(),(v).end()
#include "stations.h"
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
vector<int> dp(n);
vector<vector<int>> adj(n);
L(i,0,n-2){
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
int node=0;
L(i,0,n-1)if(sz(adj[i])==1)node=i;
int lst=-1;
int at=n-1;
while(true){
dp[node]=at;
if(sz(adj[node])==1 && lst==adj[node][0])return dp;
int pst=node;
if(sz(adj[node])==1)node=adj[node][0];
else node=adj[node][0]^adj[node][1]^lst;
lst=pst;
}
return dp;
}
int find_next_station(int s, int t, std::vector<int> c) {
if(s<t)return c.back();
else return c[0];
}
| # | 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... |