强尼(Johnny)刚刚成为一名邮递员。因为他是公司的新人,所以他得到了最糟糕的任务——给一个新街区投递紧急信件。紧急程度不容小觑:投递截止时间恰好在 1 小时后。此外,就在最近,邮政公司推出了一套新的对客户友好的规则:对于在截止时间之后投递的每封信,邮政公司将为每延迟一小时支付 1 拜塔勒(bythaler)的赔偿金。
该街区由 $n$ 栋房屋组成,编号为 $1$ 到 $n$。强尼必须给每栋房屋投递一封信。这些房屋由 $n - 1$ 条双向街道连接,使得对于任意一对房屋,都可以通过沿着街道行走从一栋房屋到达另一栋房屋。
强尼必须尽快投递信件,但由于公司的行车规定,公司的车只能将他送到他选择的一栋房屋,之后强尼必须步行。乘车过程恰好需要一小时,因此他将恰好准时投递一封信。步行通过每条街道也恰好需要一小时。将信件投入邮箱的时间可以忽略不计。不用说,强尼必须投递所有的信件。
尽管强尼很清楚按时投递是不可能的,但他仍然希望至少能最小化邮政公司必须支付的赔偿金总额。请编写一个程序帮助他:读取街区中的房屋数量以及连接它们的街道描述,确定延迟投递的最小赔偿金,并将该数字输出。
输入格式
输入的第一行包含一个整数 $n$($1 \le n \le 1\,000\,000$),表示街区中的房屋数量。
接下来的 $n - 1$ 行,每行描述街区中的一条街道。每个描述包含两个整数 $a$ 和 $b$($1 \le a, b \le n$),由单个空格分隔,表示由一条双向街道直接相连的两栋房屋的编号。
输出格式
输出一个整数,表示邮政公司必须支付的最小赔偿金(以拜塔勒为单位)。
样例
输入样例 1
5 1 2 2 3 2 4 2 5
输出样例 1
13
输入样例 2
4 1 2 1 3 3 4
输出样例 2
6
说明
对于样例 1,强尼可以在 1 号房屋下车,投递信件(准时,因此赔偿金为 0),然后步行到 2 号房屋,投递信件(赔偿金为 1),接着步行到 3 号房屋并投递信件(赔偿金为 2)。接下来,他可以返回 2 号房屋,然后继续步行到 4 号房屋并在那里投递信件(赔偿金为 4),再次返回 2 号房屋,步行到 5 号房屋并在那里投递最后一封信(赔偿金为 6)。总赔偿金为 $0 + 1 + 2 + 4 + 6 = 13$。