#3165. 填海造岛(land)

填海造岛(land)

题目描述

自2013年起,为守护国家主权和海洋权益,中国在南海开展了大规模的岛礁填海工程。经过多年建设,已在南海成功填建了美济岛、永暑岛、渚碧岛等8个重要岛屿。十年前,这些岛礁在涨潮时几乎被海水淹没,驻守官兵只能居住在狭小的高脚屋中;如今,这些地方已发展成为功能完善的现代化海上新城,配备了机场、医院、农场和学校等设施。

现在正在规划填海建造一个新的人工岛,给定一个 n×n的二进制矩阵来表示海域,其中1表示陆地,0表示海水。最多只能将一处海水(0)变为陆地(1),请计算填海后能够形成的最大陆地面积。

注意:陆地的面积指的是相连的 1 所组成的区域大小。相连规则采用四连通(即上下左右四个方向相邻的 1 视为相连)。

输入格式

从文件 land.in 读入。

  • 第一行:一个正整数 nn,表示矩阵边长。
  • 接下来 nn 行:每行 nn 个数字(0011),表示海域状态。

输出格式

输出到文件 land.out。 一行一个正整数,表示填海后能得到的最大陆地面积。

样例输入输出

样例

2
1 0
0 1
3
3
1 0 1
0 0 0
1 0 1
3
5
1 0 1 1 0
1 0 0 0 1
0 0 0 1 1
1 0 1 1 0
0 0 0 0 0
8

样例解释

  • 样例 1:将左下角 00 变为 11,四块陆地连通,面积为 33
  • 样例 2:将第一列中间 00 变为 11,最大陆地面积为 33
  • 样例 3:将第二行第 4400 变为 11,最大陆地面积为 88

数据范围

对于所有测试数据保证: 1n10001 \le n \le 1000