atcoder#AGC015C. [AGC015C] Nuske vs Phantom Thnook

[AGC015C] Nuske vs Phantom Thnook

配点 : 700700

問題文

ぬすけ君は、N×MN \times M のグリッドを持っています。行には上から順に 11 から NN、列には左から順に 11 から MM の番号がついています。 グリッドの各マスは白か青かに塗られており、Si,jS_{i,j}11 のとき iijj 列のマスは青マス、00 のとき白マスです。 青く塗られた任意の二つのマス a,ba,b について、aa からはじめて、現在いるマスから辺を共有する青いマスに進むことを繰り返して bb に至るような経路のうち、同じマスを 22 度以上通らないようなものは、高々 11 通りです。

ぬすけ君の永遠のライバルである怪盗スヌークは、ぬすけ君に QQ 個の質問をしました。ii 個目の質問は、44 つの整数 xi,1,yi,1,xi,2,yi,2x_{i,1},y_{i,1},x_{i,2},y_{i,2} からなり、 グリッドの xi,1x_{i,1} 行目から xi,2x_{i,2} 行目まで、yi,1y_{i,1} 列目から yi,2y_{i,2} 列目までの範囲の長方形領域を切り出したときに、 その範囲の青マスからなる連結成分がいくつあるかを答える質問です。

怪盗スヌークの質問すべてに答えてください。

制約

  • 1N,M20001 \leq N,M \leq 2000
  • 1Q2000001 \leq Q \leq 200000
  • Si,jS_{i,j}00 または 11 である
  • Si,jS_{i,j} は問題文中の条件を満たす
  • $1 \leq x_{i,1} \leq x_{i,2} \leq N(1 \leq i \leq Q)$
  • $1 \leq y_{i,1} \leq y_{i,2} \leq M(1 \leq i \leq Q)$

入力

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

NN MM QQ

S1,1S_{1,1}..S1,MS_{1,M}

:

SN,1S_{N,1}..SN,MS_{N,M}

x1,1x_{1,1} yi,1y_{i,1} xi,2x_{i,2} yi,2y_{i,2}

:

xQ,1x_{Q,1} yQ,1y_{Q,1} xQ,2x_{Q,2} yQ,2y_{Q,2}

出力

質問ごとに、その範囲の青マスからなる連結成分がいくつあるかを出力せよ。

3 4 4
1101
0110
1101
1 1 3 4
1 1 3 1
2 2 3 4
1 2 2 4
3
2
2
2

11 つ目の質問では、グリッド全体が指定されます。青マスからなる連結成分は 33 つあるので、33 を出力します。

22 つめの質問では、赤枠の範囲が指定されます。青マスからなる連結成分は 22 つあるので、22 を出力します。 もとのグリッドで同じ成分に属するマスが、異なる成分に属するかもしれないことに注意してください。

5 5 6
11010
01110
10101
11101
01010
1 1 5 5
1 2 4 5
2 3 3 4
3 3 3 3
3 1 3 5
1 1 3 4
3
2
1
1
3
2