栗酱的战争游戏
题号:NC14689
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

        栗n个据点,据点之间存在一些道路,将据点两两连通。
        栗据了据点,在他/她占领的每个据点中,他/她都至少安排了一个士兵,他/她以在相邻的己方据点间移动兵任意次
        如据点据点
        现据点
        但他/她
        为据点据点据点,注意士动只能由己方据点到达相邻己方据点,穿据点
        有,或者没有己方据点,或者据点据点连通的简单该能及时识别出来,并"1"(不包括引号)。

输入描述:

第一行一个数据组数T(T≤50)。
每组数据第一行n,给出结点总数(n≤100),下一行给出n个数字,表示每一个结点有几名栗酱的士兵,如果没有士兵,则代表该结点属于敌方。
之后给出一张n行n列的邻接矩阵,′Y′表示第i个结点和第j个结点存在道路将其连通。

输出描述:

对于每组数据每行给出一个数ans,表示为所求的答案,即所有与敌人结点直接相邻的己方结点的士兵数中的最小值最大是多少。
示例1

输入

复制
2
7
4 1 4 0 6 3 6
NNNNYNN
NNNNYNN
NNNNNNN
NNNNNNN
YYNNNNY
NNNNNNN
NNNNYNN
2
0 7
NY
YN

输出

复制
-1
7