数据结构和算法分析实验(二)

 

 

 

 

 

 

 

 

 

 

#include <algorithm>

 #include "stdafx.h"
#include <iostream>
#include <set>
#include <string>
#include<list>
//#include<point.h>
class point
{
public:

 int x;
 int y;

 point(int a,int b);

 


public:
 ~point(void);
};
#include "StdAfx.h"


point::point(int a,int b)
{
  
 x=a;
 y=b;

}

point::~point(void)
{
}


using namespace std;

 

 

bool operator ==(point f,point g)//重载   ==    运算符
{
   if (f.x==g.x&&f.y==g.y)
    return true;
   return false;

}
bool operator <=(point f,point g)
{
   if (f.x<g.x|| (f.x==g.x && f.y>=g.y))
    return true;
   return false;

}

bool operator <(point f,point g)//重载  <   运算符
{
   if (f.x<g.x|| (f.x==g.x && f.y>g.y))
    return true;
   return false;

}

 

int main(int argc, char* argv[])
{

 

 


int i,j,k;

set <point> points;
set <point > other;

set<point>::iterator iter[2];
int a,b;
 int winN;
 winN=0;


 freopen("in.txt","r",stdin);
 freopen("out.txt","w",stdout);
//******************************************
int number_of_point ;

 

cin>>number_of_point;//in.txt文件首行是点的个数,然后是每行一个点的坐标

for (j =0 ; j<number_of_point; j++)
{

cin>>a;
cin>>b;
points.insert(point(a,b));

 


}
//iter=points.begin();
//cout<<(*iter).x<<(*iter).y<<j<<endl;

for (iter[1]=points.begin();iter[1]!=points.end();iter[1]=points.erase(iter[1]))
{//ddd
 for (iter[0]=iter[1];iter[0]!=points.end();iter[0]++)
 {
 //x1-x2=y1-y2并且 (x1,y2)和(x2,y1)在集合中,则正方形数+1
    if( (*iter[0]).x -     (*iter[1]).x !=0&&    ( (*iter[0]).x -  (*iter[1]).x)==abs((*iter[0]).y -     (*iter[1]).y)
 && (!(points.find(point((*iter[1]).x,(*iter[0]).y))==points.end()))&&
     (!(points.find(point((*iter[0]).x,(*iter[1]).y))==points.end())   ))
 
 winN++;
 }

 


}//ddd

cout<<winN<<endl;

 


return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值