水果忍者(二)

来源:互联网 发布:甬温动车事故 知乎 编辑:程序博客网 时间:2024/06/10 01:18

    简化一下吧,就是,给你一个屏幕(二维坐标系),屏幕上有很点,必杀技的那个矩形的四个顶点必须是以屏幕上的水果为顶点,现在要你算一下,
对于这个屏幕,你能放多少种不同的必杀,也就是有多少个不同的矩形(只要任意一点的坐标不同均视为不同矩形)。






输入格式


有多组数据,第一行为一个数T(T<=10),表示有多少组数据。
接着,对于每一组数据,有一个数N(1<=N<=1000),表示平面上有多少个点。
接下来有N行,每行两个数x,y(abs(x,y)<=1e4),表示每一个点的坐标。
输入全部为整数。




输出格式


对于每一组数据,只输出一个数k(k<10^9),占一行,表示这些点能构成多少个不同的矩形。




输入样例


1
6
0 0
0 1
0 2
1 0
1 1
1 2




输出样例


3




来源


胖子 


作者


scau_acm








# include<stdio.h> 


# include<math.h> 
#include<malloc.h>


int main() 


{    int n,m; 
int* x,*y;
int count=0;


do{ 
scanf("%d",&n);
}while(n>10||n<0);








for(int p=0;p<n;p++){


do{


scanf("%d",&m);
}while(m<1||m>1000);


x=(int*)malloc(m);
y=(int*)malloc(m);

for(int i=0;i<m;i++)
{
scanf("%d",&x[i]);
scanf("%d",&y[i]);
}
    
    for(int i=0;i<m-3;i++)
{

for(int j=i+1;j<m;j++)
{
if(x[i]==x[j])
{
for(int k=i+1;k<m;k++)
{
if(y[i]==y[k])
{
for(int r=i+1;r<m;r++)
{

if(x[r]==x[k]&&y[r]==y[j])
count++;
}


}
}
}
}

    printf("%d\n",count);
}
    
     return 0;








原创粉丝点击