# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1234258 | oscarsierra12 | 기지국 (IOI20_stations) | C++20 | 306 ms | 528 KiB |
#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
vector <int> g[N];
int lbl[N];
void dfs (int u, int par, int lb) {
lbl[u] = lb;
for (int &v : g[u]) {
if (v == par) continue;
dfs (v, u, lb + 1);
}
}
vector<int> label(int n, int k, vector<int> u, vector<int> v) {
vector <int> labels(n);
vector <int> deg (n, 0);
for (int i = 0; i < n - 1; ++i) {
deg[u[i]]++;
deg[v[i]]++;
g[u[i]].push_back (v[i]);
g[v[i]].push_back (u[i]);
}
int st = 0;
for (int i = 0; i < n; ++i) {
if (deg[i] == 1) st = i;
}
dfs (st, -1, 0);
/// clear
for (int i = 0; i < n; ++i) g[i].clear();
for (int i = 0; i < n; ++i) {
labels[i] = lbl[i];
lbl[i] = 0;
}
return labels;
}
int find_next_station(int s, int t, vector<int> c) {
for (auto &e : c) {
if ( abs(s - e) + abs(e - t) == abs(s - t) ) return e;
}
}
Compilation message (stderr)
# | 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... |