atcoder#ABC225E. [ABC225E] フ

[ABC225E] フ

配点 : 500500

問題文

二次元平面上の第一象限上に NN 個のフの字があります。

i (1iN)i\ (1 \leq i \leq N) 個目のフの字は、(xi1,yi)(x_i-1,y_i)(xi,yi)(x_i,y_i) を結ぶ線分と (xi,yi1)(x_i,y_i-1)(xi,yi)(x_i,y_i) を結ぶ線分の 22 つを組み合わせた図形です。

あなたは、NN 個のフの字から 00 個以上を選び、削除することができます。

適切に削除するフの字を選んだとき、原点から全体が見えるフの字の個数は最大でいくつになりますか?

ここで、原点からあるフの字(便宜上 ii 個目のフの字とする)の全体が見える必要十分条件は、以下の通りです。

  • 原点、(xi1,yi)(x_i-1,y_i)(xi,yi)(x_i,y_i)(xi,yi1)(x_i,y_i-1)44 点を頂点とする四角形の内部(境界を除く)と他のフの字が共通部分を持たない。

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1xi,yi1091 \leq x_i,y_i \leq 10^9
  • (xi,yi)(xj,yj) (ij)(x_i,y_i) \neq (x_j,y_j)\ (i \neq j)
  • 入力はすべて整数

入力

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

NN

x1x_1 y1y_1

x2x_2 y2y_2

\hspace{0.45cm}\vdots

xNx_N yNy_N

出力

原点から全体が見えるフの字の個数の最大値を出力せよ。

3
1 1
2 1
1 2
2

11 個目のフの字を削除したとき原点からは 22 個目のフの字と 33 個目のフの字の 22 つが見えるようになり、これが最大です。

11 つのフの字も削除しない場合、原点からは 11 個目のフの字のみしか見えません。

10
414598724 87552841
252911401 309688555
623249116 421714323
605059493 227199170
410455266 373748111
861647548 916369023
527772558 682124751
356101507 249887028
292258775 110762985
850583108 796044319
10

すべてのフの字を削除せずに残すのが最善です。