#1881. 网页浏览

网页浏览

题目描述

我们在上网时,从一个网页上的链接打开另一个网页有两种方式,一个是直接替换正在浏览的页面,另 一个是在新标签页中打开。如果善用这两种打开方式,是可以节省一些操作的。

今天 Zayin\red{Zayin }需要浏览 n\red{n }个网页,其中有且仅有一个网页是保存在本地可以点击打开的,其他 n1\red{n - 1 }个网 页都是需要从某个页面的链接里打开的。因此,这 n\red{n }个网页的链接关系可以用一棵 n\red{n }个节点的有根树表示。 一开始,浏览器里什么标签页也没有,Zayin\red{Zayin }可以点击根节点代表的网页,打开第一个标签页,接下来, Zayin\red{Zayin }可以做如下的事情:

•从当前浏览的网页所含有的链接里选择一个打开,直接替换当前的网页;

•从当前浏览的网页所含有的链接里选择一个,在新标签页中打开;

•点击"返回",当前网页返回被其替换的网页,该操作只能用于"替换打开"的网页;

•关闭当前网页。

Zayin\red{Zayin }可以自行决定浏览顺序。求 Zayin\red{Zayin }从空浏览器开始,到最后浏览完全部 n\red{n }个网页并全部关闭回到 空浏览器的状态,最少需要多少步操作。

输入格式

第一行一个整数 n\red{n,}表示需要浏览的网页的数量。

第二行 n\red{n }个整数,第 i\red{i }个整数 fi\red{f_i }表示第 i\red{i }个网页是从哪个网页跳转过来的,如果 fi=1\red{f_i = -1 }则表示该网页是根网页,需要在初始时点击打开。

输出格式

一行,一个整数,表示最少的操作步数。

样例

输入样例

5
-1 1 2 1 4

输出样例

7

提示

对于所有测试点,1n105\red{1 ≤ n ≤ 10^5}