atcoder#ABC159E. [ABC159E] Dividing Chocolate

[ABC159E] Dividing Chocolate

配点 : 500500

問題文

HH マス、横 WW マスのグリッドに区切られたチョコレートがあります。

上から ii 行目、左から jj 列目にあるマス (i,j)(i,j) のチョコレートは、Si,jS_{i,j}0 のとき普通のチョコレートであり、1 のときホワイトチョコレートです。

このチョコレートに対して、マスの境界に沿った直線によってグリッド全体の端から端まで割る操作を何度か行い、いくつかのブロックに分割します。

分割後のどのブロックにもホワイトチョコレートのマスが KK マス以下しか含まれないようにするためには、最小で操作を何回行う必要があるか求めてください。

制約

  • 1H101 \leq H \leq 10
  • 1W10001 \leq W \leq 1000
  • 1KH×W1 \leq K \leq H \times W
  • Si,jS_{i,j}01

入力

入力は以下の形式で標準入力から与えられる。

HH WW KK

S1,1S1,2...S1,WS_{1,1}S_{1,2}...S_{1,W}

::

SH,1SH,2...SH,WS_{H,1}S_{H,2}...S_{H,W}

出力

分割後のどのブロックにもホワイトチョコレートのマスが KK マス以下しか含まれないようにするため必要な操作回数の最小値を出力せよ。

3 5 4
11100
10001
00111
2

例えば左の図のように 11 行目と 22 行目の間と、33 列目と 44 列目の間の 22 か所で割ればよいです。

右の2つの図のような割り方はできないことに注意してください。

図

3 5 8
11100
10001
00111
0

操作を行う必要はありません。

4 10 4
1110010010
1000101110
0011101001
1101000111
3