CF1388D Captain Flint and Treasure

题目描述

这里有长度为 $n$ 的两个数组 $a$ 和 $b$ 。一开始,答案 $ans$ 等于 $0$ 。现在我们定义如下操作: - 选择一个位置 $i$ $(1\leq i \leq n)$ - 让 $ans$ 增大 $a_i$ - 如果 $b_i \neq -1 $ 就将 $a_{b_i}$ 增大 $a_i$ 如果每一个 $i$ $(1\leq i \leq n)$ 只能选一次,请问 $ans$ 最大是多少? 并给出 $ans$ 最大时选择 $i$ 的顺序。

输入格式

第一行包括一个整数 $n$ $(1\leq n\leq 2⋅10^5)$ ,表示数组 $a$ 和 $b$ 的长度 第二行包括 $n$ 个整数表示数组 $a$ $(-10^6 \leq a_i\leq 10^6)$ 第三行包括 $n$ 个整数表示数组 $b$ $(1\leq b_i\leq n $ 或者 $ b_i = -1)$ 保证对于每个 $1\le i\le n$,在进行有限次 $i\rightarrow b_i$ 的迭代后 $i$ 一定为 $-1$。

输出格式

第一行输出 $ans$ 第二行输出第 $i$ 位是第几个选择的