100 atcoder#ABC047B. [ABC047B] すぬけ君の塗り絵 2 イージー

[ABC047B] すぬけ君の塗り絵 2 イージー

配点 : 200200

問題文

xyxy 平面上に、左下の座標が (0,0)(0, 0)、右上の座標が (W,H)(W, H) で、各辺が xx 軸か yy 軸に平行な長方形があります。最初、長方形の内部は白く塗られています。

すぬけ君はこの長方形の中に NN 個の点を打ちました。ii 個目 (1iN1 \leq i \leq N) 点の座標は (xi,yi)(x_i, y_i) でした。

また、すぬけ君は長さ NN の数列 aa を決めて、各 1iN1 \leq i \leq N に対し、

  • ai=1a_i = 1 のときは長方形の x<xix < x_i をみたす領域
  • ai=2a_i = 2 のときは長方形の x>xix > x_i をみたす領域
  • ai=3a_i = 3 のときは長方形の y<yiy < y_i をみたす領域
  • ai=4a_i = 4 のときは長方形の y>yiy > y_i をみたす領域

を黒く塗りました。

塗りつぶしが終わったあとの長方形内での白い部分の面積を求めてください。

制約

  • 1W,H1001 \leq W, H \leq 100
  • 1N1001 \leq N \leq 100
  • 0xiW0 \leq x_i \leq W (1iN1 \leq i \leq N)
  • 0yiH0 \leq y_i \leq H (1iN1 \leq i \leq N)
  • WW, HH (21:32 追記), xix_i, yiy_i は整数である
  • aia_i (1iN1 \leq i \leq N) は 1,2,3,41, 2, 3, 4 のいずれかである

入力

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

WW HH NN

x1x_1 y1y_1 a1a_1

x2x_2 y2y_2 a2a_2

::

xNx_N yNy_N aNa_N

出力

塗りつぶしが終わったあとの長方形内での白い部分の面積を出力せよ。

5 4 2
2 1 1
3 3 4
9

すぬけ君が塗りつぶしを始める前の長方形は以下の図のようになっています。

e19e673abcd0882783f635cce9d2f94d.png

(x1,y1)=(2,1)(x_1, y_1) = (2, 1)a1=1a_1 = 1 なので、まずすぬけ君は xx 座標が 22 より小さい領域を塗りつぶし、長方形は以下のようになります。

f25cd04bbac23c4e5426d70511a9762f.png

(x2,y2)=(3,3)(x_2, y_2) = (3, 3)a2=4a_2 = 4 なので、次にすぬけ君は yy 座標が 33 より大きい領域を塗りつぶし、長方形は最終的に以下のようになります。

46b0c06fd9eee4f148e1f441f7abca53.png

この最終的な状態における白い部分の面積は 99 なので、出力は 99 となります。

5 4 3
2 1 1
3 3 4
1 4 2
0

塗りつぶした結果、白い部分が残らないこともありえます。

10 10 5
1 6 1
4 1 3
6 9 4
9 4 2
3 1 3
64