[ZJOI2009]假期的宿舍
学校放假了,有些同学回家了,而有些同学则有以前的好朋友来探访,因此住宿就成了一个问题。
例如, 和 都是学校的学生, 要回家,而 来看望 ,且 与 不认识。我们假设每个人只能睡在自己的床上,或睡在与自己直接认识的人的床上。那么,一种可行的安排是让 睡在 的床上,让 睡在 的床上。
实际情况可能非常复杂:有的人可能认识许多在校学生,而在校学生之间也不一定互相认识。已知共有 个人,并且知道每个人是否为本校学生,以及每个本校学生是否回家。请判断是否存在一种安排,使所有不回家的本校学生和前来看望他们的其他人都有地方住宿。
输入格式
第一行一个整数 ,表示数据组数。
接下来有 组数据。
每组数据的第一行一个整数 ,表示涉及的总人数。
接下来一行有 个数,第 个数表示第 个人是否为本校学生: 表示不是, 表示是。
再接下来一行有 个数,第 个数表示第 个人是否回家: 表示不回家, 表示回家。注意,如果第 个人不是本校学生,那么该位置上的数是随机的,读入后应忽略。
接下来有 行,每行有 个数。第 行第 个数表示第 个人和第 个人是否认识: 表示认识, 表示不认识。第 行第 个数为 ,但每个人显然仍然可以睡在自己的床上。
输出格式
对于每组数据,如果存在一种可行的住宿安排,则输出 ^_^;否则输出 T_T。
注意,输出的均为半角字符。
样例输入
1
3
1 1 0
0 1 0
0 1 1
1 0 0
1 0 0
样例输出
^_^
数据范围
- ;
- 。
来源与许可
本题为 ZJOI 2009 试题「假期的宿舍」,题面与测试数据整理自 BZOJ。
样例 1
输入
1
3
1 1 0
0 1 0
0 1 1
1 0 0
1 0 0
输出
^_^