제출 #768108

#제출 시각아이디문제언어결과실행 시간메모리
7681083RR0R404기지국 (IOI20_stations)C++14
0 / 100
662 ms33816 KiB
#include <bits/stdc++.h> using namespace std; vector<int> child(1000,0); int l=0; set<int> visited; vector<int> L; int dfs(int node,int d,vector<vector<int>> adj) { visited.insert(node); L[node] = l; l++; for(auto p: adj[node]) { if(visited.find(p)!=visited.end()) { continue; } child[d] += dfs(p,l,adj); } return child[d]+1; } vector<int> label(int n,int k,vector<int> u,vector<int> v) { vector<vector<int>> adj(n); for(int i=0;i<n-1;i++) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } L.resize(n,0); for(auto i: adj) { if(i.size() == 1) { dfs(i[0],0,adj); break; } } return L; } int find_next_station(int s, int t, vector<int> c) { sort(c.begin(),c.end()); if(s+child[s]<t) { return c[0]; } if(s>t) { return c[0]; } return *(upper_bound(c.begin(),c.end(),t)-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...