Submission #391026

#TimeUsernameProblemLanguageResultExecution timeMemory
391026qwerasdfzxclStations (IOI20_stations)C++14
0 / 100
1057 ms672 KiB
#include "stations.h" #include <bits/stdc++.h> typedef long long ll; using namespace std; vector<int> adj[1010], ans; bool visited[1010]; int cur=0; void dfs(int s, int dep){ if (!(dep&1)) ans[s] = cur++; visited[s] = 1; for (auto &v:adj[s]) if (!visited[v]){ dfs(v, dep+1); } if (dep&1) ans[s] = cur++; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { for (int i=0;i<n;i++){ adj[i].clear(); visited[i] = 0; } ans.clear(); ans.resize(n); cur = 0; 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); return ans; } int find_next_station(int s, int t, vector<int> c) { int l, r; if (!s) l = 0, r = c.back(); else if (c[0]<s){ r = s; if ((int)c.size()<2) l = s; else l = c[1]; } else{ l = s; if ((int)c.size()<2) r = s; else r = c[c.size()-2]; } if (l<=t && t<=r){ auto iter = upper_bound(c.begin(), c.end(), t); return *(--iter); } else{ if (c[0]<s) return c[0]; else 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...