普通DISCO-2
题号:NC284851
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

普通的 disco我们普通的摇
我普通的心在扑通扑通的跳
有普通的热情在普通的尖叫
在普通的动次打次之中冲上云霄
——ilem《普通DISCO》

请注意,本题和E题 普通DISCO-1 的区别在于,本题要求使得深度最小化。

给你一棵 n 个节点的树,树根为 1 号节点。
你可以最多执行一次以下操作(它们是一个整体):
  •  选择两个不同的节点 u,v 满足 u,v 均不是树根且 u,v 互相不呈祖先关系。
  • 记 u 的父亲为 pv 的父亲为 q
  •  断掉 u 与 pv 与 q 之间的边。
  •  连接 u 与 qv 与 p
你需要使得最终这棵树的深度最小化。请输出这个深度。

输入描述:

第一行一个正整数 n,表示节点个数。

接下来 n-1 行,每行 2 个数 u,v,表示 u 与 v 之间有一条边。

(3 \le n \le 5\times 10^5)

输出描述:

一行一个数,最小可能达到的深度。
示例1

输入

复制
6
1 2
2 3
2 6
3 4
4 5

输出

复制
4

备注: