# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
524515 | 2022-02-09T11:39:42 Z | Turkhuu | 기지국 (IOI20_stations) | C++17 | 0 ms | 0 KB |
#include "stations.h" #include <bits/stdc++.h> using namespace std; vector<int> label(int n, int k, vector<int> U, vector<int> V){ vector<vector<int>> g(n); for(int i = 0; i < n - 1; i++){[ g[U[i]].push_back(V[i]); g[V[i]].push_back(U[i]); } vector<int> a(n); int x = 0; function<void(int, int)> dfs = [&](int u, int anc){ a[u] = x++; for(int v : g[u]){ if(v != anc){ dfs(v, u); } } }; for(int i = 0; ; i++){ if((int)g[i].size() == 1){ dfs(i, i); return a; } } } int find_next_station(int s, int t, vector<int> c){ if(s > t){ return *min_element(c.begin(), c.end()); } else{ return *max_element(c.begin(), c.end()); } }