#agc039b. [agc039_b]Graph Partition

[agc039_b]Graph Partition

题目描述

给定一个具有NN个顶点和MM条边的连通无向图。顶点编号为11NN,边由字符网格SS描述。如果Si,jS_{i,j}1,则存在连接顶点iijj的边;否则,不存在这样的边。

确定是否可以将顶点划分为非空集合V1,dots,VkV_1, \\dots, V_k,使满足以下条件。如果答案是肯定的,则找出满足条件的划分中最大可能的集合数kk

  • 每条边连接两个属于两个"相邻"集合的顶点。更正式地说,对于每条边(i,j)(i,j),存在1leqtleqk11\\leq t\\leq k-1使得iinVt,jinVt+1i\\in V_t,j\\in V_{t+1}iinVt+1,jinVti\\in V_{t+1},j\\in V_t成立。

约束条件

  • 2N2002 \leq N \leq 200
  • Si,jS_{i,j}01
  • Si,iS_{i,i}0
  • Si,j=Sj,iS_{i,j}=S_{j,i}
  • 给定的图是连通的。
  • NN是一个整数。

输入

输入通过标准输入给出,格式如下:

NN S1,1...S1,NS_{1,1}...S_{1,N} :: SN,1...SN,NS_{N,1}...S_{N,N}

输出

如果无法将顶点划分成满足条件的集合,则打印\-1\-1。否则,打印满足条件的划分中最大可能的集合数kk

示例输入 1

2
01
10

示例输出 1

2

我们可以将顶点11放在V1V_1中,将顶点22放在V2V_2中。

示例输入 2

3
011
101
110

示例输出 2

-1

示例输入 3

6
010110
101001
010100
101000
100000
010000

示例输出 3

4