AT_s8pc_2_g 道とN個のAtCoder社
Description
[problemUrl]: https://atcoder.jp/contests/s8pc-2/tasks/s8pc_2_g
$ Atcoder $運送会社には、$ N $個の工場が存在します。
217X年、この会社では、$ 1 $つだけ困っていることがあります。これは、会社と会社を結ぶ道が存在しないことです。
運送会社社長「これは大問題だ!!すぐにでも直さないとやばいぞ!!」
よって、今すぐ計画を立てることになりました。
この会社は、運送関連のことをやっているため、製品を地方から都市、都市から地方へ迅速に運ばなければなりません。そのため、会社専用の道を作ると多くの注文にも対応できます。
ただし、以下のような条件で道を作る必要があります。
- できるだけ運送トラックの制限速度を上げるために、道路は直線にする必要があります。
- 立体交差をすると大幅に費用が増えるので、道と道は工場以外で交差してはいけません。
- そのように全ての専用道路の制限速度を速くした上で、できるだけ目的の会社に速く速く運びたいので、 できるだけ道をつくります。
- 道は工場と工場の間をつなぐものとします。
ただ、会社は最適解を導き出す方法がわかりませんでした。
そこで、優秀なプログラマーであるあなたに、最適解を探してくれと会社から頼まれました。最大で道が何本建てられるか求めてください。
ただし、問題文中の条件は厳守するものとします。
注意:問題文中の217X年は、時空を超えた世界での時間とします。ここでの時間は今現在とみなしてよいでしょう。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ x_1 $ $ y_1 $ $ : $ $ : $ $ x_N $ $ y_N $
- $ 1 $ 行目には, 工場の総数 $ N $ が与えられる。
- $ 2 $ 行目から$ N+1 $行目にかけて、工場$ i $の座標$ (x_i,y_i) $が与えられます。
Output Format
出力は以下の形式で標準出力に従うこと。
- 最大で何本の道を建てられるか、$ 1 $行で出力してください。
Explanation/Hint
### 制約
- $ 1≦N≦2,000 $
- $ 0≦x_i,y_i≦1,000,000,000 $
- 3工場が一直線上に並ぶことはない。
### 小課題
小課題 $ 1 $ \[ $ 14 $ 点 \]
- $ 1≦N≦4 $ を満たす。
小課題 $ 2 $ \[ $ 50 $ 点 \]
- $ 1≦N≦100 $を満たす。
小課題 $ 3 $ \[ $ 36 $ 点 \]
- 追加の制約はない。
### Sample Explanation 1
点{$ (1,2),(1,3),(2,3),(1,4),(2,4) $}を結べば$ 5 $本の道を条件を満たして作ることができる。
### Sample Explanation 2
この場合、全ての辺を結ぶことができます。