Submission #1296360

#TimeUsernameProblemLanguageResultExecution timeMemory
1296360kawhietStations (IOI20_stations)C++20
16 / 100
381 ms536 KiB
#include <bits/stdc++.h> #include "stations.h" using namespace std; vector<int> a; vector<vector<int>> g; void dfs(int u, int p) { a.push_back(u); for (auto v : g[u]) { if (v != p) { dfs(v, u); } } } vector<int> label(int n, int k, vector<int> u, vector<int> v) { g.assign(n, {}); for (int i = 0; i < n - 1; i++) { g[u[i]].push_back(v[i]); g[v[i]].push_back(u[i]); } int r = 0; for (int i = 0; i < n; i++) { if (g[i].size() > 2) { r = i; break; } } vector<int> ret(n); ret[r] = 0; int cur = 1; for (auto u : g[r]) { int x = cur; int p = r; while (true) { ret[u] = x; x++; bool has = 0; for (auto v : g[u]) { if (v != p) { has = 1; p = u; u = v; break; } } if (!has) break; } cur += 1000; } return ret; } int find_next_station(int s, int t, vector<int> c) { if (s == 0) { for (auto x : c) { if (x / 1000 == t / 1000) { return x; } } } if (s / 1000 == t / 1000) { if (s < t) { return c.back(); } else { return c[0]; } } else { 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...