#ATagc018f. [AGC018F] Two Trees
[AGC018F] Two Trees
题目描述
给定两棵 个节点的有根树,节点编号均为 。第一棵树中,节点编号为 的父亲编号为 ,若节点 是根节点,则 ;第二棵树中,节点编号为 的父亲编号为 ,若节点 是根节点,则 。
请你构造一个长度为 的整数序列 ,要求满足以下条件:
- 对于任意节点,设以其为根的子树内节点的编号为 ,有 。
判断是否存在满足条件的整数序列 ,若存在,给出任意一种合法方案。
输入格式
第一行一个正整数 。
第二行 个整数 ,表示第一棵树内节点 的父亲编号(如果是根,则 )。
第三行 个整数 ,表示第二棵树内节点 的父亲编号(如果是根,则 )。
输出格式
若不存在满足条件的方案,一行输出 IMPOSSIBLE。
若存在满足条件的方案,第一行输出 POSSIBLE,第二行 个整数 ,用空格隔开。
样例 1
输入
5
3 3 4 -1 4
4 4 1 -1 1
输出
POSSIBLE
1 -1 -1 3 -1
样例 2
输入
6
-1 5 1 5 1 3
6 5 5 3 -1 3
输出
IMPOSSIBLE
样例 3
输入
8
2 7 1 2 2 1 -1 4
4 -1 4 7 4 4 2 4
输出
POSSIBLE
1 2 -1 0 -1 1 0 -1
说明/提示
样例 解释
以节点 为例,其子树内有节点 ,根据样例输出的 ,有 ,满足题目要求。其他节点可以同样地验证,发现满足题目要求。
样例 解释
可以证明,无法构造出一个满足题目要求的序列,因此无解,输出了 IMPOSSIBLE。
数据范围
- 。
- 若在第一棵树内,节点 不是根,则 。
- 若在第一棵树内,节点 是根,则 。
- 若在第二棵树内,节点 不是根,则 。
- 若在第二棵树内,节点 是根,则 。
- 保证输入的是一棵合法的树。