Cutting

Time Limit : 8 sec, Memory Limit : 262144 KB

切り取り線(Cutting)


JOI 君はペーパークラフトが趣味である.今日もJOI 君はペーパークラフトの作品を作ろうとしている.まず,JOI 君は設計図にしたがって1 枚の長方形の紙に $N$ 本の切り取り線を印刷した.各切り取り線は,紙の縦または横の辺に平行な線分である.

紙を切り出してできるすべての部分は作品の中で何らかの部品として用いられる.当然のことながら, 部品数の多い作品は製作が大変である.JOI 君は,すべての切り取り線にしたがって紙を切り出したとき, 紙がいくつの部分に分かれるかを知りたい.

課題

紙の大きさと,$N$ 本の切り取り線の情報が与えられる.これらの切り取り線にしたがって紙を切り分けたとき,紙がいくつの部分に分かれるかを求めるプログラムを作成せよ.

入力

標準入力から以下のデータを読み込め.

  • 1 行目には,整数 $W, H, N$ が空白を区切りとして書かれている.$W$ は紙の横の辺の長さを,$H$ は紙の縦の辺の長さを,$N$ は切り取り線の本数をそれぞれ表す.紙の左下,右下,左上,右上を,それぞれ座標 $(0, 0), (W, 0), (0, H), (W, H)$ で表す.
  • 続く $N$ 行のうちの $i$ 行目 $(1 \leq i \leq N)$ には,整数 $A_i, B_i, C_i, D_i (0 \leq A_i \leq C_i \leq W, 0 \leq B_i \leq D_i \leq H)$ が空白を区切りとして書かれている.これは $i$ 番目の切り取り線が$(A_i, B_i)$ と$(C_i, D_i)$ を結ぶ線分であることを表す.この線分は紙のいずれかの辺に平行な線分である.すなわち,$A_i = C_i$ と $B_i = D_i$ のうちのちょうど1 つが成り立つ.また,ある切り取り線と,それに平行な他の切り取り線が共有点を持つことはなく,ある切り取り線と,それに平行な紙の辺が共有点を持つこともない.

出力

標準出力に,紙がいくつの部分に分かれるかを表す整数を1 行で出力せよ.

制限

すべての入力データは以下の条件を満たす.

  • $ 1 \leq W \leq 1000000 000$
  • $ 1 \leq H \leq 1000000 000$
  • $ 1 \leq N \leq 100000$

入出力例

入力例 1 出力例 1
10 10 5
6 0 6 7
0 6 7 6
2 3 9 3
2 3 2 10
1 9 8 9
4

この入力の場合,切り取り線は下図のようになる.


よって,切り取り線によって紙は4 つの部分に分かれる.


入力例 2 出力例 2
13 7 28
1 1 4 1
1 1 1 3
2 2 3 2
2 2 2 3
1 3 2 3
3 2 3 6
4 1 4 6
3 6 4 6
5 1 8 1
5 1 5 6
6 2 7 2
6 2 6 5
7 2 7 5
6 5 7 5
8 1 8 6
5 6 8 6
9 1 12 1
9 1 9 2
9 2 10 2
12 1 12 2
11 2 12 2
10 2 10 5
9 5 10 5
9 5 9 6
11 2 11 5
11 5 12 5
12 5 12 6
9 6 12 6
5

この入力の場合,切り取り線は次ページの図のようになる.


よって,切り取り線によって紙は5 つの部分に分かれる.

問題文と自動審判に使われるデータは、情報オリンピック日本委員会が作成し公開している問題文と採点用テストデータです。


Source: 13th Japanese Olympiad in Informatics , 2014-2-9
http://www.ioi-jp.org/