Submission #380305

#TimeUsernameProblemLanguageResultExecution timeMemory
380305SuhaibSawalha1Stations (IOI20_stations)C++17
0 / 100
1367 ms95368 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>> adj; vector<vector<set<int>>> rec; int n; vector<int> lb; void dfs (int nd, int e, int u, int p) { rec[nd][e].insert(u); for (int v : adj[u]) { if (v ^ p) { dfs(nd, e, v, u); } } } vector<int> label(int n, int k, vector<int> u, vector<int> v) { ::n = n; adj.assign(n, {}); lb.resize(n); for (int i = 0; i < n - 1; ++i) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } rec.resize(n, vector<set<int>>(n)); for (int i = 0; i < n; ++i) { for (int j : adj[i]) { rec[i][j].clear(); dfs(i, j, j, i); } } iota(lb.begin(), lb.end(), 0); return lb; } int find_next_station(int s, int t, vector<int> c) { for (int i : c) { if (rec[s][i].count(t)) { return i; } } return -1; }
#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...