#include<stdio.h>
#include<iostream>
#include<algorithm>
#include <cstring>
#include <string>
#include <math.h>
#include <cstdio>
#include <cmath>
#include<string.h>
#include <stdlib.h>
using namespace std;
struct point
{
int x;
int y;
} q[1006];
struct fact
{
int a;
int b;
} s[1006*1000];
bool cmp(fact c,fact d)
{
if(c.a==d.a)
return c.b>d.b;
return c.a>d.a;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(q,0,sizeof(q));
memset(s,0,sizeof(s));
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
cin>>q[i].x>>q[i].y;
}
int c=0;
for(int i=0; i<n-1; i++)
{
for(int j=i+1; j<n; j++)
{
s[c].a=q[i].x+q[j].x;
s[c++].b=q[i].y+q[j].y;
}
}
sort(s,s+c,cmp);
int sum=0,ans=1;
for(int i=0; i<c-1; i++)
{
if(s[i].a==s[i+1].a&&s[i].b==s[i+1].b)
ans++;
else
{
sum+=(ans-1)*ans/2;
ans=1;
}
}
cout<<sum<<endl;
}
}
Parallelogram Counting(平行四边形计数)
最新推荐文章于 2019-04-11 21:14:44 发布