제출 #1316038

#제출 시각아이디문제언어결과실행 시간메모리
1316038nikaa123기지국 (IOI20_stations)C++20
100 / 100
402 ms592 KiB
#include <bits/stdc++.h> #include "stations.h" using namespace std; vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<int> labels(n); vector <vector<int>> g(n); for (int i = 0; i < n-1; i++) { g[u[i]].push_back(v[i]); g[v[i]].push_back(u[i]); } int t = 0; function<void(int,int,int)> dfs = [&](int x, int p, int d) { if (d%2) labels[x] = t++; for (auto to:g[x]) { if (to != p) dfs(to,x,d+1); } int out = t-1; if (!(d%2)) { labels[x] = t++; } }; dfs(0,0,0); return labels; } int find_next_station(int s, int t, vector<int> c) { int n = c.size(); if (s <= c[0]) { for (int i = 0; i < n-1; i++) { int in = s+1; int out = c[i]; if (in <= t && t <= out) { return c[i]; } } return c[n-1]; } for (int i = n-1; i > 0; i--) { int in = c[i]; int out = s-1; if (in <= t && t <= out) return c[i]; } return c[0]; }
#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...