제출 #308639

#제출 시각아이디문제언어결과실행 시간메모리
308639xt0r3기지국 (IOI20_stations)C++14
0 / 100
947 ms1024 KiB
#include<bits/stdc++.h> #include "stations.h" using namespace std; constexpr int N = 2005; int timer; vector<int> l, d; vector<vector<int> > edges; void dfs(int id){ d[id] = timer++; for(int v : edges[id]){ if(d[v] == -1) dfs(v); } l[id] = timer++; } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v){ edges.assign(n, vector<int>()); l.assign(n, -1); d.assign(n, -1); vector<int> ll(n); for(int i = 0; i < n; i++){ edges[u[i]].push_back(v[i]); edges[v[i]].push_back(u[i]); } timer = 0; dfs(0); for(int i = 0; i < n; i++){ ll[i] = N * d[i] + l[i]; } return ll; } int find_next_station(int s, int t, std::vector<int> c){ int si = s / N, sl = s % N, ti = t / N, tl = t % N, dex = -1; for(int x : c){ int ci = x / N, cl = x % N; if(ci <= si && sl <= cl) dex = x; } for(int x : c){ int ci = x / N, cl = x % N; if(x != dex && ci <= ti && tl <= cl) return x; } return dex; }
#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...