제출 #780889

#제출 시각아이디문제언어결과실행 시간메모리
780889kamelfanger83기지국 (IOI20_stations)C++17
5 / 100
747 ms752 KiB
#include "stations.h" #include <vector> using namespace std; vector<pair<int, int>> prepost; vector<vector<int>> cons; int C = 0; void dfs(int i, int from){ prepost[i].first = C++; for (int c : cons[i]){ if (c == from) continue; dfs(c, i); } prepost[i].second = C; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { cons.clear(); C = 0; vector<int> labels(n); cons.resize(n); for (int i = 0; i < n - 1; ++i) { cons[u[i]].push_back(v[i]); cons[v[i]].push_back(u[i]); } int l = -1; for (int i = 0; i < n; ++i) { if (cons[i].size() == 1) l = i; } prepost.resize(n); dfs(l, -1); for (int i = 0; i < n; ++i) { labels[i] = prepost[i].first; } return labels; } int find_next_station(int s, int t, vector<int> c) { if (c.size() == 1) return c[0]; if (s < t) return max(c[0], c[1]); return min(c[0], c[1]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...