제출 #978925

#제출 시각아이디문제언어결과실행 시간메모리
978925happypotatoStations (IOI20_stations)C++17
0 / 100
576 ms884 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; #define pb push_back vector<int> label(int n, int k, vector<int> U, vector<int> V) { vector<vector<int>> adj(n); for (int i = 0; i < n - 1; i++) { adj[U[i]].pb(V[i]); adj[V[i]].pb(U[i]); } vector<int> res(n); int tt = 0; auto dfs = [&](auto&& self, int u = 0, int par = -1, bool flag = false) -> void { if (!flag) res[u] = ++tt; for (int v : adj[u]) { if (v == par) continue; self(self, v, u, flag ^ 1); } if (flag) res[u] = ++tt; }; dfs(dfs); return res; } int find_next_station(int s, int t, vector<int> c) { if (c.size() == 1) return c.front(); c.pb(s); sort(c.begin(), c.end()); if (c.back() == s) { for (int i = 1; i < (int)(c.size()) - 1; i++) { if (c[i] <= t && t < c[i + 1]) return c[i]; } return c.front(); } else if (c.front() == s) { for (int i = 1; i < (int)(c.size()) - 1; i++) { if (c[i - 1] <= t && t < c[i]) return c[i]; } return c.back(); } else throw runtime_error("wrong construction"); }
#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...