ある塗りつぶしたマス \((a_i, b_i)\) に対して, このマスが \(3 \times 3\) の枠のどの部分にあたるかを列挙し, その枠内の塗りつぶした点の数を数えてカウンタを更新していく. ただし, すでにチェックした枠はスキップする.

塗りつぶしたマスおよびチェックした枠については連想配列に入れておけばいい.

枠内の塗られたマスが \(0\) 個の値は, \((H-2)(W-2)\) からカウンタの総和を引いたものとなる.