题号:NC233872
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述
给你

个点,组成一棵树,并且左半边

个点,右半边

个点组成一张二分图。
定义 一棵树的Prufer code:取出当前下标最小的叶子结点,将其删除,并且输出和它相邻的点的下标,直到最后只剩下两个点。
告诉你两个子序列

,

。他们都是这棵树的 Prufer code的一个子序列,并且

中元素是

~

,

中元素为

~

。
问你是否能构造这样一棵树,并且将这棵树输出。
输入描述:
第一行四个整数)
第二行
个整数
。
第三行
个整数
。
输出描述:
如果无法构造,输出"No"。否则输出"Yes",接下来输出

行,每行两个整数,表示树的边。
示例1
输出
复制
Yes
1 5
1 6
2 7
6 3
3 7
9 4
3 8
4 8
备注:
原题链接:https://codeforces.com/contest/1267/problem/F