问题 4793. -- 会攻击的点

4793: 会攻击的点

时间限制: 3 Sec  内存限制: 128 MB
献花: 13  解决: 4
[献花][花圈]

题目描述

Alice 有一个大小为((10^5+1) * (10^5+1))的二维棋盘,为方便表示,左下角坐标为(0,0),右上角为(10^5,10^5)。在这个特殊的棋盘上有一些特殊的棋子,这些特殊的棋子很奇葩,他们会相互攻击,如果一个棋子(x,y)在另一个棋子的(a,b)的左上方,或者右下方,或者水平方向,或者竖直方向(也就是 (x<=a&&y>=b)或者(x>=a&&y<=b)),他们就会相互攻击,成为一对会相互攻击的点。现在给你一些点的分布,保证没有重合的点,请你输出一共有多少对会相互攻击的点。(如果第j个点和第i个点算一对,那么第i个点和第j个点算同一对,不重复计数)

输入

输入有多组数据,但总的数据数不超过60。
对于每组数据,第一行有一个整数n,代表n个棋子。紧接着n行,每行两个整数x,y,表示棋子的位置。
( 1 <= n <= 10^5, 0 <= x,y <= 10^5)

输出

对于每组数据,输出一行,代表这组数据的会互相攻击的点的对数。

答案可能过大,建议答案类型为 long long. 

数据量大,建议使用scanf。

样例输入

3
2 3
3 3
4 4

3
1 4
2 3
3 3

4
0 0
1 1
2 2
3 3

4
1 4
2 3
3 2
4 1

样例输出

1
3
0
6

提示

来源

[献花][花圈]