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
AC × 2
AC × 31
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