#1391. 4.红与蓝

4.红与蓝

当前没有测试数据。

4.红与蓝

题目描述

给定一棵树,初始时非叶节点均为无色,叶节点会是红色、蓝色或无色。

小红和小蓝轮流给无色叶子染色(小红染红色,小蓝染蓝色,小红先染)。所有叶子染完后,非叶节点的颜色将被逐一确定:一个非叶节点的颜色是它所有儿子的颜色中出现较多的那个(保证有奇数个儿子)。最后,根是谁的颜色谁就获胜。

求小红是否能赢,若能赢,求出第一步选择哪些叶子能赢。

输入格式

第一行一个整数tt表示数据组数。

每组数据第一行一个整数nn表示节点数。

第二行nn个整数,第ii个整数ff表示ii的父亲,保证f1=0f_1=0

第三行nn个整数,第ii个整数gg表示ii的初始颜色(00表示红色,11表示蓝色,1-1表示无色)。

输出格式

每组数据输出一行。

若小红能赢,先输出一个整数mm表示第一步可以选的叶子数,接下来mm个整数表示那些叶子的编号,从小到大输出。

否则输出一个整数1-1

数据范围与提示

  • 对于20%20\%的数据,t=1t=1n<20n<20
  • 对于60%60\%的数据,n<2000n<2000
  • 对于100%100\%的数据,t<10t<10n105n \leq 10^{5}

样例

2
2
0 1
-1 -1
2
0 1
-1 1
1 2
-1