CF1098A.Sum in the tree

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Mitya has a rooted tree with nn vertices indexed from 11 to nn, where the root has index 11. Each vertex vv initially had an integer number av≥0a_v \ge 0 written on it. For every vertex vv Mitya has computed svs_v: the sum of all values written on the vertices on the path from vertex vv to the root, as well as hvh_v — the depth of vertex vv, which denotes the number of vertices on the path from vertex vv to the root. Clearly, s1=a1s_1=a_1 and h1=1h_1=1.

Then Mitya erased all numbers ava_v, and by accident he also erased all values svs_v for vertices with even depth (vertices with even hvh_v). Your task is to restore the values ava_v for every vertex, or determine that Mitya made a mistake. In case there are multiple ways to restore the values, you're required to find one which minimizes the total sum of values ava_v for all vertices in the tree.

米提亚有一棵以 11 为根的有根树,树上有 nn 个顶点,编号从 11 到 nn。每个顶点 vv 最初写有一个整数 av≥0a_v \ge 0。对于每个顶点 vv,米提亚计算了 svs_v:从顶点 vv 到根节点路径上所有顶点所写数值之和;以及 hvh_v:顶点 vv 的深度,即从顶点 vv 到根节点路径上的顶点个数。显然,s1=a1s_1 = a_1 且 h1=1h_1 = 1。

随后,米提亚擦除了所有 ava_v 的值,并且不小心也擦除了所有偶数深度顶点(即满足 hvh_v 为偶数的顶点)对应的 svs_v 值。你的任务是恢复每个顶点的 ava_v 值,或判定米提亚犯了错误。若存在多种恢复方案,你需要找出其中一种使得整棵树上所有顶点的 ava_v 值之和最小的方案。

输入格式

The first line contains one integer nn — the number of vertices in the tree (2≤n≤1052 \le n \le 10^5). The following line contains integers p2p_2, p3p_3, ... pnp_n, where pip_i stands for the parent of vertex with index ii in the tree (1≤pi<i1 \le p_i \lt i). The last line contains integer values s1s_1, s2s_2, ..., sns_n (−1≤sv≤109-1 \le s_v \le 10^9), where erased values are replaced by −1-1.

第一行包含一个整数 nn —— 树中顶点的数量(2≤n≤1052 \le n \le 10^5)。
接下来的一行包含整数 p2p_2, p3p_3, ..., pnp_n,其中 pip_i 表示树中编号为 ii 的顶点的父节点(1≤pi<i1 \le p_i \lt i)。
最后一行包含整数值 s1s_1, s2s_2, ..., sns_n(−1≤sv≤109-1 \le s_v \le 10^9),其中被擦除的值用 −1-1 代替。

输出格式

Output one integer — the minimum total sum of all values ava_v in the original tree, or −1-1 if such tree does not exist.

输出一个整数——原始树中所有值 ava_v 的最小总和;如果这样的树不存在,则输出 −1-1。

输入输出样例

  • 输入#1

    5
    1 1 1 1
    1 -1 -1 -1 -1

    输出#1

    1
  • 输入#2

    5
    1 2 3 1
    1 -1 2 -1 -1

    输出#2

    2
  • 输入#3

    3
    1 2
    2 -1 1

    输出#3

    -1

输入解题思路,AI测评打分。不知道怎么写?

首页