atcoder#ABC203D. [ABC203D] Pond

[ABC203D] Pond

配点 : 400400

問題文

AtCoder 公園の敷地は東西南北に広がる N×NN\times N のマス目からなっており、北から ii 番目かつ西から jj 番目のマスの高さは Ai,jA_{i,j} で与えられます。

公園の管理者である高橋君はここに K×KK \times K の区画の池を作る事にしました。

池を作るにあたって、高橋君は AtCoder 公園の敷地内に完全に含まれる K×KK \times K の区画であってその区画に含まれるマスの高さの中央値が最も低いようなものを選ぼうと考えました。そのような区画のマスの高さの中央値を求めてください。

ここで、 K×KK \times K の区画に含まれるマスの高さの中央値とはその区画に含まれる K2K^2 個のマスのうち K22+1\left\lfloor\frac{K^2}{2}\right\rfloor +1 番目に高いマスの高さを指します。また、x\lfloor x\rfloorxx 以下の最大の整数を表します。

制約

  • 1KN8001 \leq K \leq N \leq 800
  • 0Ai,j1090 \leq A_{i,j} \leq 10^9
  • 入力は全て整数である。

入力

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

NN KK

A1,1A_{1,1} A1,2A_{1,2} \ldots A1,NA_{1,N}

A2,1A_{2,1} A2,2A_{2,2} \ldots A2,NA_{2,N}

::

AN,1A_{N,1} AN,2A_{N,2} \ldots AN,NA_{N,N}

出力

答えを出力せよ。

3 2
1 7 0
5 8 11
10 4 2
4

北から ii 番目で西から jj 番目のマスを (i,j)(i,j) で表すとして、 池の候補となる 2×22\times 2 の区画は、$\{(1,1),(1,2),(2,1),(2,2)\}, \{(1,2),(1,3),(2,2),(2,3)\}, \{(2,1),(2,2),(3,1),(3,2)\}, \{(2,2),(2,3),(3,2),(3,3)\}$ の 44 つです。 K=2K=2 のとき、各区画に含まれるマスの高さの中央値は各区画に含まれるマスのうち 222+1=3\left\lfloor\frac{2^2}{2}\right\rfloor+1=3 番目に高いマスの高さとなるので、それぞれの区画の中央値は 55, 77, 55, 44 であり、このうち最小である 44 を出力します。

3 3
1 2 3
4 5 6
7 8 9
5