AT_agc018_f.[AGC018F] Two Trees
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两棵 N 个节点的有根树,节点编号均为 1∼N。第一棵树中,节点编号为 i 的父亲编号为 Ai,若节点 i 是根节点,则 Ai=−1;第二棵树中,节点编号为 i 的父亲编号为 Bi,若节点 i 是根节点,则 Bi=−1。
请你构造一个长度为 N 的整数序列 X,要求满足以下条件:
- 对于任意节点,设以其为根的子树内节点的编号为 a1,a2,⋯,ak,有 i=1∑kXai=1。
判断是否存在满足条件的整数序列 X,若存在,给出任意一种合法方案。
输入格式
第一行一个正整数 N。
第二行 N 个整数 Ai,表示第一棵树内节点 i 的父亲编号(如果是根,则 Ai=−1)。
第三行 N 个整数 Bi,表示第二棵树内节点 i 的父亲编号(如果是根,则 Bi=−1)。
输出格式
若不存在满足条件的方案,一行输出 IMPOSSIBLE。
若存在满足条件的方案,第一行输出 POSSIBLE,第二行 N 个整数 X1,X2,⋯,XN,用空格隔开。
输入输出样例
输入#1
5 3 3 4 -1 4 4 4 1 -1 1
输出#1
POSSIBLE 1 -1 -1 3 -1
输入#2
6 -1 5 1 5 1 3 6 5 5 3 -1 3
输出#2
IMPOSSIBLE
输入#3
8 2 7 1 2 2 1 -1 4 4 -1 4 7 4 4 2 4
输出#3
POSSIBLE 1 2 -1 0 -1 1 0 -1
说明/提示
样例 1 解释
以节点 3 为例,其子树内有节点 3,1,2,根据样例输出的 X,有 ∣X3+X1+X2∣=∣−1+1−1∣=1,满足题目要求。其他节点可以同样地验证,发现满足题目要求。
样例 2 解释
可以证明,无法构造出一个满足题目要求的序列,因此无解,输出了 IMPOSSIBLE。
数据范围
- 1≤N≤105。
- 若在第一棵树内,节点 i 不是根,则 1≤Ai≤N。
- 若在第一棵树内,节点 i 是根,则 Ai=−1。
- 若在第二棵树内,节点 i 不是根,则 1≤Bi≤N。
- 若在第二棵树内,节点 i 是根,则 Bi=−1。
- 保证输入的是一棵合法的树。
输入解题思路,AI测评打分。不知道怎么写?