#P5288. [2021泉州五一集训试题]day1第三题

[2021泉州五一集训试题]day1第三题

Description

小C给了你一个简单无向连通图,有N个顶点和M条边。点从1到N编号。 通过一个二维矩阵S来给出边:如果S(i,j)是1 ,则表示存在一条连接点i和点 j的边,否则则表示不存在这样的边。

现在小C想让你判断:能否将所有的点划分到不同的非空点集中,满足条件:

•每条边连接的两个点属于两个相邻的集合。即对于每条边(i,j),存在

1=< t =< k — 1 满足 i ∈ Vt, j ∈V(t+1) 或 i ∈ V(t+1),j ∈ Vt

如果可以的话,小C想知道最多能够将原来的点集划分为多少个集合。

Input Format

输入 第一行输入一个整数 N

接下来一共N行,每行输入N个整数,表示题目中的S矩阵

Output Format

如果找不到合法的划分方式,输出-1。

否则输出最多能被划分成的集合的数量

Sample

样例数据 1 输入

2
01
10

输出

2

样例解释 我们可以把1号点放入集合1 ,然后把2号点放入集合2。 样例数据 2 输入

3
011
101
110

输出

-1

样例数据 3 输入

6
010110
101001
010100
101000
100000
010000

输出

4

Hint

2 < N < 200

• S(i,j)是0或1

• S(i,i) = 0

•给定图是连通的