Submission #70262035
Source Code Expand
#include<bits/stdc++.h>
#define LL long long
#define PII pair<int, int>
#define PLL pair<LL, LL>
#define PLI pair<LL, int>
using namespace std;
int n;
vector<vector<int> > g;
vector<int> dep;
vector<PII> mx, ma, ans;
void dfs0(int u = 1, int p = 0) {
// cout << u << " " << p << "\n";
dep[u] = dep[p] + 1;
mx[u] = {0, u}; ma[u] = {-1, 0};
for (auto v : g[u]) if (p != v) {
dfs0(v, u);
PII a = mx[v];
a.first++;
if (a >= mx[u]) {
ma[u] = mx[u]; mx[u] = a;
}
else if (a >= ma[u]) ma[u] = a;
}
// mx[u].first -= dep[u]; ma[u].first -= dep[u];
// cout << u << " " << mx[u].first << " " << mx[u].second << " " << ma[u].first << " " << ma[u].second << "\n";
}
void dfs(int u = 1, int p = 0, PII up = {-1, 0}) {
// cout << u << " " << mx[u].first << " " << mx[u].second << " " << up.first << " " << up.second << "\n";
ans[u] = max(mx[u], up);
up.first++;
for (auto v : g[u]) if (v != p) {
PII a;
if (mx[u].second == mx[v].second) {
a = ma[u]; a.first++;
dfs(v, u, max(up, a));
continue;
}
a = mx[u]; a.first++;
dfs(v, u, max(up, a));
}
}
inline void solve() {
cin >> n;
g.resize(n + 1); ans.resize(n + 1);
dep.resize(n + 1); mx.resize(n + 1); ma.resize(n + 1);
for (int i = 1; i < n; i++) {
int u, v; cin >> u >> v;
g[u].push_back(v);
g[v].push_back(u);
}
// for (int i = 1; i <= n; i++) {
// for (auto v : g[i]) cout << v << " ";
// cout << "\n";
// }
dep[0] = -1;
dfs0(); dfs();
for (int i = 1; i <= n; i++) cout << ans[i].second << "\n";
}
signed main() {
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Farthest Vertex |
| User | C202627yehan |
| Language | C++ 20 (gcc 12.2) |
| Score | 475 |
| Code Size | 1703 Byte |
| Status | AC |
| Exec Time | 376 ms |
| Memory | 98960 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 475 / 475 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 02_path_00.txt, 02_path_01.txt, 02_path_02.txt, 02_path_03.txt, 03_star_1_00.txt, 03_star_1_01.txt, 03_star_1_02.txt, 04_star_2_00.txt, 04_star_2_01.txt, 04_star_2_02.txt, 04_star_2_03.txt, 04_star_2_04.txt, 05_star_3_00.txt, 05_star_3_01.txt, 05_star_3_02.txt, 06_corner_00.txt, 06_corner_01.txt, 06_corner_02.txt, 06_corner_03.txt, 06_corner_04.txt, 06_corner_05.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3492 KiB |
| 00_sample_01.txt | AC | 1 ms | 3512 KiB |
| 01_random_00.txt | AC | 170 ms | 27928 KiB |
| 01_random_01.txt | AC | 316 ms | 45536 KiB |
| 01_random_02.txt | AC | 220 ms | 33716 KiB |
| 01_random_03.txt | AC | 312 ms | 45556 KiB |
| 01_random_04.txt | AC | 224 ms | 34504 KiB |
| 01_random_05.txt | AC | 315 ms | 45648 KiB |
| 01_random_06.txt | AC | 295 ms | 44272 KiB |
| 01_random_07.txt | AC | 307 ms | 45556 KiB |
| 02_path_00.txt | AC | 140 ms | 98960 KiB |
| 02_path_01.txt | AC | 370 ms | 87064 KiB |
| 02_path_02.txt | AC | 365 ms | 80556 KiB |
| 02_path_03.txt | AC | 376 ms | 97960 KiB |
| 03_star_1_00.txt | AC | 93 ms | 46988 KiB |
| 03_star_1_01.txt | AC | 101 ms | 47064 KiB |
| 03_star_1_02.txt | AC | 206 ms | 46936 KiB |
| 04_star_2_00.txt | AC | 114 ms | 45052 KiB |
| 04_star_2_01.txt | AC | 224 ms | 46008 KiB |
| 04_star_2_02.txt | AC | 324 ms | 45088 KiB |
| 04_star_2_03.txt | AC | 340 ms | 57732 KiB |
| 04_star_2_04.txt | AC | 352 ms | 73916 KiB |
| 05_star_3_00.txt | AC | 318 ms | 44556 KiB |
| 05_star_3_01.txt | AC | 319 ms | 45104 KiB |
| 05_star_3_02.txt | AC | 320 ms | 45064 KiB |
| 06_corner_00.txt | AC | 137 ms | 81584 KiB |
| 06_corner_01.txt | AC | 137 ms | 81512 KiB |
| 06_corner_02.txt | AC | 348 ms | 81624 KiB |
| 06_corner_03.txt | AC | 347 ms | 81608 KiB |
| 06_corner_04.txt | AC | 354 ms | 78448 KiB |
| 06_corner_05.txt | AC | 351 ms | 78308 KiB |