奋斗折线
题号:NC20641
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

        编程比赛的征程,道路是曲折的。当下素材已经呈上,请为自己送上一条奋斗折线,激励自己勇往前行!

        在一个二维平面中,有 n 个点。选择其中 m 个点,其中 m 为偶数。对 m 个点编号为 1 , 2 , … , m ,m 个点的坐标分别为 ( x1 , y1 ) , ( x2 , y2 ) , , ( xm , ym ) 。将编号相邻的点连接起来,得到奋斗曲线。对于 ( xi , yi ) ( 2 ≤ i ≤ m ),满足以下条件:


输入描述:

第1行输入点的数目n(n为整数,1≤n≤100000)。

第2行-第n+1行输入n个点的坐标,每行两个整数x,y(0≤x,y≤100000),分别为各个点的横坐标,纵坐标。保证数据中所有点的坐标都不相同。

输出描述:

输出一个整数,为奋斗折线中最大的m值(m必须满足条件,为偶数)。若不存在奋斗折线,请输出0。
示例1

输入

复制
5
1 5
2 4
3 3
4 2
5 1

输出

复制
0

说明

不存在奋斗折线
示例2

输入

复制
7
0 3
3 1
4 2
2 3
3 2
5 -1
1 1

输出

复制
4

说明


(1,1),(2,3),(3,1),(4,2)为m值最大的可行解。

另外的可行解有(1,1),(2,3)和(3,1),(4,2)和(1,1),(4,2)。

备注:

建议使用C/C++解答本题。