[HNOI2019]鱼
题号:NC50622
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在平面坐标系上给定n个不同的整点(也即横坐标与纵坐标皆为整数的点)。我们称从这n个点中选择6个不同的点所组成的有序六元组是一条「鱼」,当且仅当:AB=AC,BD=CD,DE=DF(身形要对称),并且都是锐角(脑袋和屁股显然不能是凹的),大于(也即为钝角或平角,为了使尾巴不至于翘那么别扭)。
下图就是一个合法的鱼的例子:
fish.png其中点的组成相同,但顺序不同的鱼视为不同的鱼,即视为不同的两条鱼(毕竟鱼也有背和肚子的两面),同理也可以视为不同的两条鱼(假设鱼尾巴可以打结)。
问给定的n个点可以构成多少条鱼。特别的,数据保证n个点互不重复。

输入描述:

第一行一个正整数n,代表平面上点的个数。
接下来n行每行两个整数x,y,代表点的横纵坐标。

输出描述:

输出一行一个非负整数,代表鱼的个数。
示例1

输入

复制
8
-2 0
-1 0
0 1
0 -1
1 0
2 0
3 1
3 -1

输出

复制
16

备注:

对于前的数据,保证
对于前的数据,保证
对于另外的数据,保证
对于所有数据,保证,n个点互不重复。