제출 #926689

#제출 시각아이디문제언어결과실행 시간메모리
926689ByeWorld기지국 (IOI20_stations)C++14
0 / 100
4 ms1212 KiB
#include "stations.h" #include <vector> #include <bits/stdc++.h> #define fi first #define se second #define pb push_back using namespace std; typedef pair<int,int> pii; typedef pair<pii,int> ipii; const int MAXN = 2e3+10; int n, k; vector <int> adj[MAXN]; vector <int> vec; int dep[MAXN]; void make(int id, int par, int dp){ vec.pb(id); dep[id] = dp; for(auto in : adj[id]){ if(in == par) continue; make(in, id, dp+1); } } vector<int> label(int N, int K, vector<int> u, vector<int> v) { n = N; k = K; vec.clear(); for(int i=0; i<=n; i++){ adj[i].clear(); dep[i] = -1; } for(int i=0; i<n-1; i++){ adj[u[i]].pb(v[i]); adj[v[i]].pb(u[i]); } for(int i=0; i<n; i++){ if(adj[i].size() != 1) continue; make(i, -1, 0); break; } vector<int> labels(n); for (int i = 0; i < n; i++) { labels[i] = i; } // for(auto in : vec) cout << in << " p\n"; // for(int i=0; i<n; i++) cout << i << ' ' << dep[i] << " xx\n"; return labels; } int find_next_station(int s, int t, vector<int> c) { if(s == t) assert(0); if(dep[s] < dep[t]){ return vec[dep[s] + 1]; } else { return vec[dep[s] - 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...