Submission #1312325

#TimeUsernameProblemLanguageResultExecution timeMemory
1312325LaMatematica14Stations (IOI20_stations)C++20
100 / 100
404 ms580 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { vector<int> label(n); vector<vector<int>> adj(n); for (int i = 0; i < n-1; i++) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } int num = 0; vector<int> depth(n, 0); function<void(int, int)> dfs = [&](int a, int p) { if (depth[a]) label[a] = num++; for (auto x : adj[a]) { if (x == p) continue; depth[x] = !depth[a]; dfs(x, a); } if (!depth[a]) label[a] = num++; }; dfs(0, -1); return label; } int find_next_station(int s, int t, std::vector<int> c) { sort(c.begin(), c.end()); if (s < c[0]) { // apertura if (t < s) return c.back(); for (int i : c) { if (i >= t) return i; } return c.back(); } else { // chiusura reverse(c.begin(), c.end()); if (t > s) return c.back(); for (int i : c) { if (i <= t) return i; } 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...