Submission #434395

#TimeUsernameProblemLanguageResultExecution timeMemory
434395radaiosm7Stations (IOI20_stations)C++17
100 / 100
1105 ms764 KiB
#include "stations.h" #include <vector> #include <bits/stdc++.h> using namespace std; int timer; vector<int> labels; vector<int> adj[1005]; void dfs(int x, int p=-1, int curr=0) { if (curr == 0) { labels[x] = timer++; } for (auto y : adj[x]) { if (y != p) dfs(y, x, curr^1); } if (curr == 1) { labels[x] = timer++; } } vector<int> label(int n, int k, vector<int> u, vector<int> v) { timer = 0; labels.clear(); labels.resize(n); for (int i=0; i < n; ++i) { adj[i].clear(); } for (int i=0; i < n-1; ++i) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } dfs(0); return labels; } int find_next_station(int s, int t, vector<int> c) { if ((int)c.size() == 1) return c[0]; else if (s > c[0]) { if (t <= c[0] || t > s) { return c[0]; } else { return *--upper_bound(c.begin(), c.end(), t); } } else { if (t < s || t >= c.back()) { return c.back(); } else { return *lower_bound(c.begin(), c.end(), t); } } }
#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...