atcoder#ABC248E. [ABC248E] K-colinear Line

[ABC248E] K-colinear Line

配点 : 500500

問題文

座標平面上の NN 個の点が与えられます。 1iN1\leq i\leq N について、ii 番目の点の座標は (Xi,Yi)(X_i, Y_i) です。

座標平面上の直線であって、NN 個の点のうち KK 個以上の点を通るものの個数を求めてください。 ただし、そのようなものが無数に存在する場合は Infinity を出力してください。

制約

  • 1KN3001 \leq K \leq N \leq 300
  • Xi,Yi109\lvert X_i \rvert, \lvert Y_i \rvert \leq 10^9
  • iji\neq j ならば XiXjX_i\neq X_j または YiYjY_i\neq Y_j
  • 入力はすべて整数

入力

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

NN KK

X1X_1 Y1Y_1

X2X_2 Y2Y_2

\vdots

XNX_N YNY_N

出力

与えられた NN 個の点のうち KK 個以上の点を通る直線の数を出力せよ。ただし、そのようなものが無数に存在する場合は Infinity を出力せよ。

5 2
0 0
1 0
0 1
-1 0
0 -1
6

x=0x=0, y=0y=0, y=x±1y=x\pm 1, y=x±1y=-x\pm 166 本の直線が条件をみたします。 例えば、x=0x=0 は、11, 33, 55 番目の 33 個の点を通ります。

よって、66 を出力します。

1 1
0 0
Infinity

原点を通る直線は無数に存在します。 よって、Infinity を出力します。