题意:平面给你n个点,问能够组成多少个平行四边形

思路:能组成平行四边形的两条对边的向量一定是相等的,直接n^2把所有向量算出来就做完了



#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int maxn = 2005;
map<pair<int,int>,int> ve;
pair<int,int>a[maxn];
int main()
{
    int n;
	scanf("%d",&n);
	for (int i = 1;i<=n;i++)
		scanf("%d%d",&a[i].first,&a[i].second);
	int ans = 0;
	for (int i = 1;i<=n;i++)
		for (int j = i+1;j<=n;j++)
		{
			pair<int,int>temp;
			temp.first = a[i].first-a[j].first;
			temp.second = a[i].second-a[j].second;
			if (temp.first<0)
				temp.first=-temp.first,temp.second=-temp.second;
			else if (temp.second<0 && temp.first==0)
				temp.second=-temp.second;
			ans+=ve[temp];
			ve[temp]++;
		}
	printf("%d\n",ans/2);
}




Description



You are given n



Input



The first line of the input contains integer n (1 ≤ n ≤ 2000) — the number of points.

Each of the next n lines contains two integers (xi, yi) (0 ≤ xi, yi ≤ 109) — the coordinates of the i-th point.



Output



Print the only integer c



Sample Input



Input



4 0 1 1 0 1 1 2 0



Output



1