#17981. 妙妙咒语 (mantra.cpp)

妙妙咒语 (mantra.cpp)

题目描述

在成都迪斯尼里,米奇妙妙屋位于笛卡尔坐标平面上。它有 NN 个米奇妙妙屋编号为 1,2,,N1,2,…,N。第 ii 个米奇妙妙屋位于 (xi,yi)(x_i, y_i),且没有两个不同的米奇妙妙屋

位于相同的坐标上。

成都迪斯尼有传送咒语。一个咒语由一对整数 (a,b)(a,b) 标识,对坐标 (x,y)(x,y) 施放咒语 (a,b)(a,b) 会将你传送到 (x+a,y+b)(x+a, y+b)

诺米是一位了不起的魔术师,可以学习任意整数对 (a,b)(a,b) 的咒语。他可以学习的咒语数量也是无限的。为了能够利用咒语在米奇妙妙屋之间旅行,他决定学习一些

咒语,以便对于每一对不同的米奇妙妙屋 (i,j)(i,j),都能实现以下目标:

从学习的咒语中选择一种。然后,重复使用所选择的咒语,从城镇 ii 到城镇 jj

为了实现上述目标,诺米至少需要学习多少个咒语?

输入格式

第一行一个整数 NN ,表示米奇妙妙屋的数量。

接下来 NN 行,每行两个整数 xi,yix_i, y_i,表示第 ii 个米奇妙妙屋的坐标 (xi,yi)(x_i, y_i)

输出格式

一行一个整数,表示答案。

3
1 2
3 6
7 4
6
3
1 2
2 2
4 2
2
4
0 0
0 1000000000
1000000000 0
1000000000 1000000000
8

数据范围与约定

对于 20%20\% 的数据,n4n \le 4

对于 100%100\% 的数据,满足:

  • 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)

    (xi,yi)(xj,yj)(x_i, y_i) \neq (x_j, y_j) if iji \neq j