Good 的集合
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

平面上给 个点,保证不存在 3 点共线,保证这些点两两不重合,对于一个点集 S ,如果从 S 中任意选出三个不同的点,构成的三角形重心都不是整点(横坐标,纵坐标都是整数的点,称为整点),那么这个点集是  good 的,输出最大的 good 的点集大小。(注:所有点数小于等于 2 的点集都是 good 的)。

输入描述:

第一行,一个整数 ,表示 n 个点,之后 n 行,每行两个整数 .

输出描述:

输出一个正整数表示答案。
示例1

输入

复制
4
0 0
0 1
1 0
1 1

输出

复制
4
示例2

输入

复制
3
0 0
1 2
2 1

输出

复制
2

备注:

* 样例 1 所有点都可以加入集合。

* 样例 2,如果 3 个点同时加入集合,重心为 (1,1) 不合法,Good Set 中至多只能 2 个点。