seuOJ394 - 数方框

题目描述

让我们一起来数方框!

现在有一张分辨率为h×wh\times w的图片,其中画了若干个方框。方框的线条宽度为11像素,且方框任一条边长度均不小于33像素。所有线条都水平或垂直,也就是不存在类似菱形等情况。

为了方便样例的解释,假设图片左上角为 (1,1) ,右下角为 (h,w) ,我们使用 [(l1,r1l_1,r_1),(l2,r2l_2,r_2)] 表示一个左上角位于(l1,r1l_1,r_1),右下角位于 (l2,r2l_2,r_2) 的方框。

不同的方框交叉会形成一些新的方框,例如样例中的图形就由 [(1,11,1),(9,159,15)], [(1,11,1),(6,76,7)], [(3,33,3),(9,159,15)],3个方框组成。然而画出的图形中,除了原本的33个方框,还新产生了[(6,16,1),(9,39,3)], [(3,33,3),(6,76,7)], [(1,71,7),(3,153,15)]共33个方框。所以样例中一共有66个方框。

数据保证,即使是因为交叉产生的小方框,小方框的任意一边长也不小于33像素。

图1

现在姬哥在纸上画了不超过 100100 个方框,你只知道最终画出的图片,请你数一数一张给定图片里有多少个方框。

输入格式

第一行两个正整数h,w(3h,w1000)h,w(3\leq h,w\leq 1000),表示图片分辨率。

接下来一共hhww列的0101值,代表图片中每个像素,11表示线条,00表示背景。

数据保证图片可以由不超过100个方框画出。

输出格式

输出一行一个正整数,表示图片中方框的个数。

样例

输入样例

9 15
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 1 0 0 0 0 0 0 0 1
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 0 1 0 0 0 0 0 0 0 1
1 0 1 0 0 0 1 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 1
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

输出样例

6