#CF2237E. 置换交换 / E. Permutation Commutation
置换交换 / E. Permutation Commutation
置换交换
英文题名:E. Permutation Commutation
来源:Codeforces 2237E
比赛:Order Capital Round 2 (Codeforces Round 1104, Div. 1 + Div. 2)
时间限制:2 seconds
空间限制:256 megabytes
题目描述
给定置换 和含有若干 的序列 。需要把 补成置换,使得对所有 都有 。若有多解,输出字典序最小的补全;若无解,输出 NO。
输入格式
第一行输入 。每组输入 、置换 和不完整序列 。
输出格式
有解先输出 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