问题 25579 --棋子

25579: 棋子

时间限制: 1 Sec  内存限制: 128 MB
提交: 25  解决: 16
[提交][状态][讨论版][数据上传:][下载FPS1元][下载测试数据1元][2868kb]

题目描述

给定一个无穷大的棋盘,上面有一些棋子,而在你的手里有无穷多个棋子。然后如果你看到三个棋子组成了一个两边平行于坐标轴的矩形的三个顶点,而第四个顶点上没有棋子,那么你就要在那个顶点上放一个棋子,一直到没有可以放的位置为止。

那么问题来了,你可不可以无限的放下去呢?如果不能,请输出棋盘上最后的棋子数量。

输入

第一行一个整数n表示有n个棋子一开始就在棋盘上。

接下来n行,每行都表示一个棋子的坐标,其中x坐标在前,y坐标在后。

输入数据可能会出现开始时同一个位置放置了多个棋子的情况,这些棋子只计算为一个棋子。


对于40%的数据,n<=5000

对于100%的数据,n<=200000

Xy都在longint(Pascal)int(C++)的范围内

输出

一行一个整数,如果能无限放下去,输出-1,否则输出最后的棋子数(不保证范围)

样例输入

3
0 0
0 1
1 0

样例输出

4

提示

来源

[提交][状态]