제출 #1092945

#제출 시각아이디문제언어결과실행 시간메모리
1092945huyngo기지국 (IOI20_stations)C++17
100 / 100
663 ms1276 KiB
#include "stations.h" #include<bits/stdc++.h> using namespace std; std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { std::vector<int> labels(n); vector<vector<int>> adj(n); for (int i = 0; i < n - 1; ++i) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } vector<int> in(n), out(n); int dtime = 0; auto dfs = [&](auto self, int u, int p, int d) -> void { if (d == 0) labels[u] = dtime++; for (int v : adj[u]) if (v != p) self(self, v, u, d ^ 1); if (d == 1) labels[u] = dtime++; }; dfs(dfs, 0, -1, 0); return labels; } int find_next_station(int s, int t, std::vector<int> c) { if (s <= c[0]) { int r = s; if (s == 0) r = c.back(); else if (c.size() > 1) r = c.end()[-2]; if (s <= t && t <= r) return *lower_bound(c.begin(), c.end(), t); return c.back(); } int l = c[0] + 1; if (l <= t && t <= s) return *--upper_bound(c.begin(), c.end(), t); return c[0]; }
#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...