#P5286. [HNOI2019] 鱼

[HNOI2019] 鱼

题目背景

本题数据听说没问题?\text{\color{white}本题数据听说没问题?}

题目描述

在平面坐标系上给定nn个不同的整点(也即横坐标与纵坐标皆为整数的点)。我们称从这nn个点中选择6个不同的点所组成的有序六元组(A,B,C,D,E,F)(A,B,C,D,E,F)是一条“鱼”,当且仅当:AB=AC,BD=CD,DE=DFAB=AC,BD=CD,DE=DF(身形要对称),并且∠BAD,∠BDA\angle BAD,\angle BDA 与∠CAD,∠CDA\angle CAD,\angle CDA都是锐角(脑袋和屁股显然不能是凹的),∠ADE,∠ADF\angle ADE,\angle ADF 大于90∘90^\circ(也即为钝角或平角,为了使尾巴不至于翘那么别扭)。

下图就是一个合法的鱼的例子:

其中点的组成相同,但顺序不同的鱼视为不同的鱼,即(A,B,C,D,E,F)(A,B,C,D,E,F)和(A,C,B,D,E,F)(A,C,B,D,E,F)视为不同的两条鱼(毕竟鱼也有背和肚子的两面),同理(A,B,C,D,E,F)(A,B,C,D,E,F)和(A,B,C,D,F,E)(A,B,C,D,F,E)也可以视为不同的两条鱼(假设鱼尾巴可以打结)。

问给定的nn个点可以构成多少条鱼。特别的,数据保证nn个点互不重复。

输入格式

第一行一个正整数nn,代表平面上点的个数。

接下来nn行每行两个整数x,yx,y,代表点的横纵坐标。

输出格式

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

8
-2 0
-1 0
0 1
0 -1
1 0
2 0
3 1
3 -1
16

提示

对于前 20%的数据,保证n≤10,∣x∣,∣y∣≤5n \leq 10,|x|,|y| \leq 5

对于前 40%的数据,保证n≤300n \leq 300,0≤∣x∣,∣y∣≤1050 \leq |x|,|y| \leq 10^5。

对于另外 20%的数据,保证∣x∣,∣y∣≤20|x|,|y| \leq 20。

对于所有数据,保证6≤n≤10006 \leq n \leq 1000,0≤∣x∣,∣y∣≤1090 \leq |x|, |y| \leq 10^9,nn个点互不重复。