atcoder#ABC226D. [ABC226D] Teleportation

[ABC226D] Teleportation

配点 : 400400

問題文

AtCoder 国は無限に広がる直交座標の上にあります。 AtCoder 国には NN 個の街があり、 1,2,,N1,2,\dots,N と番号が付けられています。街 ii は地点 (xi,yi)(x_i, y_i) にあり、22 つの異なる番号の街が同じ座標にあることはありません。

AtCoder 国には転移魔法(以下、魔法と表記)があります。魔法は整数の組 (a,b)(a,b) によって識別されていて、地点 (x,y)(x,y) にいるときに魔法 (a,b)(a,b) を使うと (x+a,y+b)(x+a,y+b) にワープすることができます。

すぬけ君は、任意の整数の組 (a,b)(a,b) を選んで魔法 (a,b)(a,b) を覚えることができる大魔術師です。また、すぬけ君は何種類でも魔法を覚えることができます。 魔法を使って街と街の間を移動したくなったすぬけ君は、全ての相異なる街の組 (i,j)(i,j) について次の行動を取れるようにいくつかの魔法を覚えることにしました。

  • 覚えた魔法のうち 1 種類の魔法のみ を選ぶ。その後、選んだ魔法 のみ を繰り返し使って街 ii から 街 jj に移動する。

すぬけ君が上の条件を満たすように魔法を覚えるとき、少なくとも何種類の魔法を覚えればよいですか?

制約

  • 2N5002 \leq N \leq 500
  • 0xi1090 \leq x_i \leq 10^9 (1iN)(1 \leq i \leq N)
  • 0yi1090 \leq y_i \leq 10^9 (1iN)(1 \leq i \leq N)
  • iji \neq j ならば (xi,yi)(xj,yj)(x_i, y_i) \neq (x_j, y_j) である。

入力

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

NN

x1x_1 y1y_1

x2x_2 y2y_2

\vdots

xNx_N yNy_N

出力

すぬけ君が覚える必要がある魔法の個数の最小値を出力せよ。

3
1 2
3 6
7 4
6

AtCoder 国の街の位置を図示したのが下の図です。(わかりやすさのために四隅の座標を表示しています。)

image

すぬけ君は次の 66 種類の魔法を覚えれば、すべての (i,j)(i,j) (ij)(i \neq j) の組に対して街 ii から 11 種類の魔法を 11 回使うことで街 jj に着くことができるので条件を満たします。

  • (2,4)(2, 4)
  • (2,4)(-2, -4)
  • (4,2)(4, -2)
  • (4,2)(-4, 2)
  • (6,2)(-6, -2)
  • (6,2)(6, 2)

次の 66 種類の魔法も条件を満たします。このときすぬけ君は、すべての (i,j)(i,j) (ij)(i \neq j) の組に対して街 ii から 11 種類の魔法を 22 回使うことで街 jj に着くことができます。

  • (1,2)(1, 2)
  • (1,2)(-1, -2)
  • (2,1)(2, -1)
  • (2,1)(-2, 1)
  • (3,1)(-3, -1)
  • (3,1)(3, 1)

条件を満たす魔法の組み合わせのうち 66 種類より少ないものは存在しないので、 66 を出力します。

3
1 2
2 2
4 2
2

次の 22 種類の魔法を覚えるのが最適です。

  • (1,0)(1, 0)
  • (1,0)(-1, 0)
4
0 0
0 1000000000
1000000000 0
1000000000 1000000000
8