每到zz的生日,zz和他的朋友们都会砍下一棵有n个顶点的树,并把它带回家。之后,他们为这n个顶点涂色,这样第i个顶点就有颜色ci了。
现在生日已经过了个月了,妈妈要求zz把树移走。zz用下面的方法移树:他用手取一些顶点,然后其他所有顶点向下移动,这样树就在所选的顶点上扎根。之后,zz把树扔到垃圾桶里。
zz不喜欢许多颜色混合在一起。如果子树中有不同颜色的顶点,他会很恼火。
zz想找到一个顶点,当他拿的时候没有子树困扰他。他不认为整棵树是子树,因为他看不到根顶点的颜色。
某个顶点的子树是包含该顶点及其所有后代的子图。你的任务是确定是否有一个顶点,把它拿在手里zz不会生气。
输入格式:
第一行包含单个整数nn (2≤n≤105),树中的顶点数。
接下来的n-1行中的每一行都包含两个整数u和v(1≤u,v≤n,u≠v),表示顶点u和v之间有一条边,保证给定的图是树。
下一行包含n个整数c1,c2,...,cn(1≤ci≤105),表示顶点的颜色。
输出格式:
如果蒂莫菲不能以不惹恼他的方式拿走这棵树,就在一行中打印“NO”。
否则在第一行打印“YES”。在第二行打印蒂莫菲应该拿在手中的顶点的索引。如果有多个答案,打印其中任何一个。
数据范围:
2≤n≤105
1≤ci≤105
4 1 2 2 3 3 4 1 2 1 1
YES 2
3 1 2 2 3 1 2 3
YES 2
4 1 2 2 3 3 4 1 2 1 2
NO
第一行包含单个整数nn (2≤n≤105),树中的顶点数。
接下来的n-1行中的每一行都包含两个整数u和v(1≤u,v≤n,u≠v),表示顶点u和v之间有一条边,保证给定的图是树。
下一行包含n个整数c1,c2,...,cn(1≤ci≤105),表示顶点的颜色。
如果蒂莫菲不能以不惹恼他的方式拿走这棵树,就在一行中打印“NO”。
否则在第一行打印“YES”。在第二行打印蒂莫菲应该拿在手中的顶点的索引。如果有多个答案,打印其中任何一个。
数据范围:
2≤n≤105
1≤ci≤105
4
1 2
2 3
3 4
1 2 1 1
YES
2