Submission #833740

#TimeUsernameProblemLanguageResultExecution timeMemory
833740Sohsoh84기지국 (IOI20_stations)C++17
0 / 100
3095 ms2097152 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 10; int t; vector<int> labels, adj[MAXN]; void dfs(int v, int p, bool b) { if (!b) labels[v] = t++; for (int u : adj[v]) if (u != p) dfs(u, v, !b); if (b) labels[v] = t++; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { labels.resize(n); for (int i = 0; i < n - 1; i++) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } dfs(0, 0, false); return labels; } int find_next_station(int s, int t, vector<int> c) { sort(c.begin(), c.end()); bool f = s < c[0]; int n = c.size(); if (f) { if (t < s) return c[n - 1]; for (int i = 0; i < n - 1; i++) if (t <= c[i]) return c[i]; return c[n - 1]; } else { if (t > s) return c[0]; for (int i = n - 1; i > 0; i--) if (c[i] <= t) return c[i]; 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...