제출 #617973

#제출 시각아이디문제언어결과실행 시간메모리
617973someoneStations (IOI20_stations)C++14
100 / 100
999 ms1392 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const int N = 1e4 + 42; int id, lab[N]; vector<int> adj[N]; void DFS(int i, int pre, bool preorder) { if(preorder) lab[i] = id++; for(int j : adj[i]) if(j != pre) DFS(j, i, !preorder); if(!preorder) lab[i] = id++; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { id = 0; 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, 0, true); vector<int> labels(n); for(int i = 0; i < n; i++) labels[i] = lab[i]; return labels; } int find_next_station(int s, int t, vector<int> c) { int n = c.size(); c.push_back(s); sort(c.begin(), c.end()); if(c[0] == s) { if(t < c[0] || c[n-1] < t) return c[n]; for(int i = n-1; i >= 0; i--) if(t > c[i]) return c[i+1]; } else if(c[n] == s) { if(t < c[1] || c[n] < t) return c[0]; for(int i = 2; i <= n; i++) if(t < c[i]) return c[i-1]; } cout << "wtf"; 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...