QOJ.ac

QOJ

حد الوقت: 4 s حد الذاكرة: 1024 MB مجموع النقاط: 100

#3926. 流寻找器

الإحصائيات

制图员 Carla 代表国家定位与测绘中心 (NCPC) 进行了一次考察。目标是测量北方某处河流系统的水流量。然而,该地区非常偏远,且 Carla 并非冒险型人格,因此她只能测量部分位置的水流量。Carla 现在担心 NCPC 明年夏天会把她送回这片荒野,所以她咨询了一些算法专家(你),看看是否有可能重建缺失的数据。

该河流系统由一棵有 $n$ 个顶点的有根树表示,顶点编号从 $1$ 到 $n$。这棵树的叶子节点是源头,其他顶点对应汇流处(多条河流汇合的地方)。水从编号较大的顶点流向编号较小的顶点。顶点 $1$ 是树的根,也是河流系统的入海口。源头的水流量可以是任何正整数,而汇流处的水流量是其所有子节点水流量之和。你将获得这棵树以及其中一些顶点的水流量,你的任务是找出所有顶点的水流量,或者确定这是不可能的。

图 F.1:样例输入 1 及其解的示意图。水从左向右流动。图中红色的流量(顶点 1, 5, 7 和 9)未给出,但可以推导出分别为 9, 2, 3 和 1。

输入格式

输入的第一行包含一个整数 $n$ ($2 \le n \le 3 \cdot 10^5$),表示树中的顶点数。 接下来一行包含 $n - 1$ 个整数 $p_2, \dots, p_n$ ($1 \le p_i < i$),其中 $p_i$ 是顶点 $i$ 的父节点编号。 最后一行包含 $n$ 个整数 $a_1, \dots, a_n$ ($0 \le a_i \le 10^9$),其中 $a_i$ 表示顶点 $i$ 的水流量。如果 $a_i$ 等于 $0$,则该顶点的水流量未知。否则,$a_i$ 等于顶点 $i$ 的水流量。注意,$a_i$ 的上限 $10^9$ 不适用于未知值,它们可以是任何正整数。

输出格式

如果所有 $n$ 个水流量都能唯一确定,则按顶点编号递增的顺序输出它们。否则,输出 “impossible”。注意,可能存在无法重建水流量的情况(如果 Carla 提供的数据在某种程度上是不一致的)。在这种情况下,你也应该输出 “impossible”。

样例

输入 1

10
1 2 3 2 1 6 7 7 6
0 4 2 2 0 5 0 2 0 2

输出 1

9
4
2
2
2
5
3
2
1
2

输入 2

5
1 2 2 1
4 0 0 0 1

输出 2

impossible

输入 3

4
1 1 1
3 2 1 0

输出 3

impossible

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.