Submission #308577

#TimeUsernameProblemLanguageResultExecution timeMemory
308577szekelymilanStations (IOI20_stations)C++14
0 / 100
1251 ms640 KiB
#include "stations.h" #include <vector> std::vector<std::vector<int>> G; std::vector<bool> visited; std::vector<int> labels; int time = 0; void DFS(int node = 1) { visited[node] = true; labels[node] += (time++) * 2000; for (int v : G[node]) if (!visited[v]) DFS(v); labels[node] += time++; } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { G.resize(n); visited.resize(n); labels.resize(n); for (int i = 0; i < n - 1; i++) { G[u[i]].push_back(v[i]); G[v[i]].push_back(u[i]); } DFS(1); return labels; } int find_next_station(int s, int t, std::vector<int> c) { for (int node : c) if (node / 2000 < t / 2000 && t / 2000 < node % 2000 && node / 2000 > s / 2000 && node % 2000 < s % 2000) return node; for (int node : c) if (node / 2000 < s / 2000 && node % 2000 > s % 2000) return node; return 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...