题面
我重生了,重生到了机战世界当中,成了机车族的机战王
你的任务是带领机车战士打败猛兽族的所有战王,作为游戏的boss,所有的猛兽族战王都是S级的。因此对于任意一个战王, 你都需要找到对应的两位机车族战士练成合击绝技才能打败,比如要打败猛虎王,你需要先找到急先锋和霹雳火,并练成流影电光闪。
机车族战士和猛兽族战王分散在地图的各个位置,地图由n个节点n-1条边构成,保证地图最后是一棵树,而你出生在节点1号,每一次你可以移动到相邻的节点。如果你在前进的道路上遇到无法打败的战王,你将无法通过这个节点。如果你遇到了机车战士,你可以把他放到你的队伍中带上一起出发,并通过该节点。
请问你最后能否打败所有的战王,如果可以,输出YES
,否则输出NO
并换行输出已经打败的战王的数量。
同时为了方便,我们规定对于任意的战王i
,能打败他的合击绝技需要机车战士2*i-1
和2*i
打败,比如对于1号战王,你需要1号机车战士和2号机车战士的合击绝技才能打败。注意,打败战王不会消耗机车战士。
输入格式
第一行给定一个整数n
()代表节点的个数
后面n - 1
行,每行两个数字u
和v
,代表节点u
和v
是连通的。
后面n - 1
行,每行三个数字loc
、kind
、id
分别代表在loc
号节点上,有一个种族为kind
,编号为id
的角色。保证每个loc各不相同,且不为1,id可能重复
输出格式
YES
代表最后能打败所有猛兽族战王
否则输出NO
并换行输出能打败的猛兽族战王的数量。
样例
输入
7 1 2 1 3 2 6 2 7 3 4 3 5 2 1 1 3 2 1 6 2 3 7 2 4 4 2 2 5 1 2
输出
YES
输入
7 1 2 1 3 2 6 2 7 3 4 3 5 2 1 1 3 2 1 6 2 3 7 2 4 4 2 1 5 1 2
输出
NO 0