在坐标平面上放置了 $N$ 个点。
编写一个程序,计算有多少种选择三个点的方法,使得它们组成一个直角边平行于坐标轴的直角三角形。
直角三角形有一个 $90$ 度的内角。直角三角形的直角边是其两条较短的边。
输入格式
第一行包含一个整数 $N$ ($3 \le N \le 100\,000$),表示点的数量。
接下来的 $N$ 行,每行包含两个整数 $X$ 和 $Y$ ($1 \le X, Y \le 100\,000$),表示一个点的坐标。
输入中没有重复的点。
输出格式
输出直角三角形的数量。
子任务
对于 $40\%$ 的测试数据,$N < 100$。
对于 $70\%$ 的测试数据,$N < 10\,000$。
样例
输入样例 1
3 4 2 2 1 1 3
输出样例 1
0
输入样例 2
5 1 2 2 1 2 2 2 3 3 2
输出样例 2
4
输入样例 3
6 10 10 20 10 10 20 20 20 30 20 30 30
输出样例 3
8