제출 #1239727

#제출 시각아이디문제언어결과실행 시간메모리
1239727SalihSahin기지국 (IOI20_stations)C++20
0 / 100
2245 ms2162688 KiB
#include "bits/stdc++.h" #include "stations.h" using namespace std; vector<int> leaf, p(1000); vector<int> adj[1000]; void dfs(int node, int par){ p[node] = par; if(node != par && adj[node].size() == 1){ leaf.push_back(node); } for(auto itr: adj[node]){ if(itr == par) continue; dfs(itr, node); } } vector<int> label(int n, int k, vector<int> u, vector<int> v) { 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); int now = 0; vector<int> labels(n), cnt(n); labels[0] = n-1; for(auto itr: leaf){ int cur = itr; while(p[cur] != cur){ labels[cur] = now++; cnt[p[cur]]++; if(cnt[p[cur]] == adj[p[cur]].size()-1){ cur = p[cur]; } else{ break; } } } /* for(int i = 0; i < n; i++){ cout<<i<<" -> "<<labels[i]<<endl; }*/ return labels; } int find_next_station(int s, int t, vector<int> c) { int nxt = c.back(); for(auto itr: c){ if(itr >= t){ nxt = itr; break; } } return nxt; }
#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...