제출 #308555

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