Submission #811953

#TimeUsernameProblemLanguageResultExecution timeMemory
811953hgmhcStations (IOI20_stations)C++17
100 / 100
831 ms768 KiB
#include "stations.h" #include <algorithm> using namespace std; using vi = vector<int>; int n, c; vector<int> adj[1000], res; void dfs(int d=0, int s=0, int e=-1) { if (d&1) res[s] = c++; for (const auto &u : adj[s]) if (u != e) dfs(d+1,u,s); if (~d&1) res[s] = c++; } vi label(int _n, int k, vi u, vi v) { n = _n; for (int i = 0; i < n-1; ++i) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } c=0, res.resize(n), dfs(); for (int i = 0; i < n; ++i) adj[i].clear(); return res; } int find_next_station(int s, int t, vi c) { bool flag = s > c[0]; if (flag) reverse(begin(c),end(c)); int x, y = s; for (const auto &u : c) { x = y, y = u; if (flag) { if (y <= t and t < x) return u; } else { if (x < t and t <= y) return u; } } return c.back(); }
#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...