#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(平行四边形计数)
猜你喜欢
转载自blog.csdn.net/qq_40721948/article/details/80037163
今日推荐
周排行