华灯初上
题号:NC287355
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}门口的九盏花灯由九个灯闸控制,每一个灯闸可能控制了多盏花灯,对于一盏花灯,只有当控制它的所有灯闸都打开时,这盏花灯才会亮。特别地,如果一个花灯没有被任何灯闸控制,则它默认是关着的。
\hspace{15pt}你已经从妈妈的手中接过了每一个灯闸所控制的花灯的编号,初始时有一些灯已经是亮着的、有一些开关已经是开着的。妈妈提出的问题是,最少需要操作几次灯闸,才能使得所有的灯都亮起来;最少需要操作几次灯闸,才能使得所有的灯都熄灭。
\hspace{15pt}两个提问独立,互不干扰。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 200 \right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入一个长度为 9 ,仅由 \texttt{`0'}\texttt{`1'} 组成的字符串 t ,代表初始时所有灯闸的状态。其中,第 i 个字符 t_i = \texttt{`1'} 时代表第 i 个灯闸是开着的,否则代表第 i 个灯闸是关着的。
\hspace{15pt}此后 9 行,第 i 行输入一个长度为 9 ,仅由 \texttt{`0'}\texttt{`1'} 组成的字符串 t_i ,代表第 i 个灯闸的控制情况。其中,第 j 个字符 t_{i,j} = \texttt{`1'} 时代表能控制第 j 盏花灯,否则代表不能控制。

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。如果存在一种方案,使得所有的灯都亮起来,输出一个整数,代表最少需要的操作次数;如果无法点亮所有的灯,则直接输出 -1 ;随后,在同一行上,如果存在一种方案,使得所有的灯都熄灭,输出一个整数,代表最少需要的操作次数;如果无法熄灭所有的灯,则直接输出 -1
示例1

输入

复制
2
000000000
111111111
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000011111
100000000
010000000
001000000
000100000
000010000
000001000
000000100
000000000
100000001

输出

复制
1 0
-1 4

说明

\hspace{15pt}对于第一组测试数据,初始时,所有的灯和灯闸都是关着的;打开第一个灯闸,所有的灯都能被点亮。
\hspace{15pt}对于第二组测试数据,初始时,第 5 \sim 9 个灯闸打开,这使得第 5,6,7,9 这四盏灯亮着。