#CF2237E. 置换交换 / E. Permutation Commutation

    ID: 18579 传统题 2000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>CodeforcesOrder Capital Round 2 (Codeforces Round 1104, Div. 1 + Div. 2)

置换交换 / E. Permutation Commutation

置换交换

英文题名:E. Permutation Commutation
来源Codeforces 2237E
比赛:Order Capital Round 2 (Codeforces Round 1104, Div. 1 + Div. 2)
时间限制:2 seconds
空间限制:256 megabytes

题目描述

给定置换 aa 和含有若干 1-1 的序列 bb。需要把 bb 补成置换,使得对所有 ii 都有 abi=baia_{b_i}=b_{a_i}。若有多解,输出字典序最小的补全;若无解,输出 NO

输入格式

第一行输入 tt。每组输入 nn、置换 aa 和不完整序列 bb

输出格式

有解先输出 YES,再输出补全后的置换;无解输出 NO

样例

12
3
2 3 1
-1 -1 -1
4
2 1 4 3
-1 -1 4 -1
4
2 1 4 3
3 1 -1 -1
4
2 1 4 3
1 -1 -1 2
5
2 3 1 5 4
2 -1 -1 -1 -1
5
2 3 1 5 4
4 -1 -1 -1 -1
6
2 3 1 5 6 4
4 -1 -1 -1 -1 -1
6
2 1 4 3 6 5
-1 3 -1 -1 -1 -1
6
3 5 6 2 1 4
-1 -1 -1 3 6 -1
7
2 3 1 5 4 6 7
-1 -1 -1 -1 -1 7 -1
8
2 3 4 1 6 7 8 5
5 7 -1 -1 -1 -1 -1 -1
8
2 3 4 1 6 7 8 5
5 -1 -1 -1 -1 -1 -1 -1
YES
1 2 3
YES
1 2 4 3
NO
NO
YES
2 3 1 4 5
NO
YES
4 5 6 1 2 3
YES
4 3 1 2 5 6
NO
YES
1 2 3 4 5 7 6
NO
YES
5 6 7 8 1 2 3 4