G - Guarding Plan
Editorial
/
/
Time Limit: 2 sec / Memory Limit: 1024 MiB
配点 : 100 点
問題文
2 次元座標平面上に N 人の警備員が立っています。i 人目の警備員は点 (x_i, y_i) に立っています。あなたは次の操作を 0 回以上好きな回数繰り返すことができます。
- 警備員の立っている点を 2 つ選び、その 2 点を端点とする線分上の点を 1 つ選ぶ。その点に警備員が立っていない場合、そこに新しく警備員を立たせる。
点 (a, b) に立っている警備員は、x 座標が a 以下かつ y 座標が b 以下の領域にいる警備員を監視します。自分以外の警備員に監視されていない警備員を「必要な警備員」と呼びます。
最終的な警備員の配置における「必要な警備員」の人数の最小値を求めてください。さらに、「必要な警備員」の人数を最小にするために必要な操作回数の最小値を求めてください。
制約
- 入力は全て整数
- 1 \leq N \leq 2\times 10^5
- 0 \leq x_i, y_i \leq 10^9 (1\leq i\leq N)
- (x_i, y_i)\neq (x_j, y_j) (i\neq j)
入力
入力は以下の形式で標準入力から与えられる。
N x_1 y_1 \vdots x_N y_N
出力
2 行にわたり出力せよ。1 行目には、達成できる「必要な警備員」の人数の最小値を出力せよ。2 行目には、その最小値を達成するために必要な操作回数の最小値を出力せよ。
入力例 1
5 1 6 2 4 3 3 4 2 6 1
出力例 1
4 1
点 (1,6) と点 (6,1) の警備員の間の点 (3,4) を選び、ここに新たに警備員を立たせます。この操作の後で、「必要な警備員」は (1,6),(3,4),(4,2),(6,1) に立っている 4 人になります。
入力例 2
3 0 0 1 2 2 1
出力例 2
2 0
入力例 3
7 10 49 9 27 59 8 19 22 0 50 25 23 33 13
出力例 3
4 1