이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;
const int mx = 1e3;
const int mxl = 1e6;
vector<int> label(int n, int k, vector<int> u, vector<int> v) {
vector<vector<int>> ed(n);
for (int i = 0; i < n-1; ++i) {
ed[u[i]].push_back(v[i]);
ed[v[i]].push_back(u[i]);
}
int rt = 0;
for (int i = 0; i < n; ++i){
if (ed[i].size() > ed[rt].size()) rt = i;
}
int x = 1;
vector<int> label(n);
for (auto to : ed[rt]){
int prev = rt;
int l = x * mx - 1;
int cur = to;
while (ed[cur].size() != 1){
label[cur] = l--;
if (ed[cur][0] == prev) cur = ed[cur][1];
else cur = ed[cur][0];
}
label[cur] = l;
x++;
}
label[rt] = mxl;
return label;
}
int find_next_station(int s, int t, vector<int> c) {
if (s == mxl){
for (auto x : c){
if (x / mx == t / mx) return x;
}
} else if (s / mx == t / mx){
if (s > t){
for (auto x : c){
if (s > x) return x;
}
}
else{
for (auto x : c){
if (s < x) return x;
}
}
} else{
for (auto x : c){
if (s < x) return x;
}
}
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... |