Submission #767979

#TimeUsernameProblemLanguageResultExecution timeMemory
767979Gr1senStations (IOI20_stations)C++17
0 / 100
3 ms548 KiB
#include"stations.h" #include<iostream> #include<vector> #include<algorithm> using namespace std; #define vi vector<int> #define vvi vector<vi> vi M1, M2; vvi Adj; int k = 0; void dfs(int p) { M1[p] = k; for (int i : Adj[p]) { if (M1[i] != -1) continue; dfs(i); } M2[M1[p]] = k; } vi label(int n, int k, vi u, vi v) { Adj.resize(n); for (int i = 0; i < n-1; i++) { Adj[u[i]].push_back(v[i]); Adj[v[i]].push_back(u[i]); } M1.resize(n, -1); M2.resize(n, -1); dfs(0); return M1; } int find_next_station(int s, int t, vi c) { if (s > t) return c[0]; if (M2[s] > t) return c[0]; for (int i = c.size()-1; i > -1; i--) { if (c[i] < t) return c[i]; } 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...