ccf 201912-2 回收站选址(100分)

ccf 201912-2 回收站选址(100分)_第1张图片

ccf 201912-2 回收站选址(100分)_第2张图片 

ccf 201912-2 回收站选址(100分)_第3张图片 

提交后100分的c++程序如下:

#include
using namespace std;
int a=0,b=0,c=0,d=0,e=0;
struct point
{
	int x,y;
	point(int x1,int y1)
	{
		x=x1;
		y=y1;
	}
	point()
	{
	}
  bool operator< (const point &s) const
  {
  	if(x==s.x) return y s;
int m(int x,int y)
{
	 set::iterator it;
	  for(it=s.begin();it!=s.end();it++)
	  {
	  	if((*it).x==x&&(*it).y==y) return 1;
	  	
	  }
	  return 0;
}
int main()
{
   int n;
   cin>>n;
     
   for(int i=1;i<=n;i++)
   {
   
    int x,y;
    cin>>x>>y;
     s.insert(point(x,y));
   }

         set::iterator it;

  for(it=s.begin();it!=s.end();it++)
   {
   
   	 if(m((*it).x-1,(*it).y)==1&&m((*it).x+1,(*it).y)==1&&m((*it).x,(*it).y-1)==1&&m((*it).x,(*it).y+1)==1)
   	 {
   	 	int sum=0;
   	 	if(m((*it).x-1,(*it).y-1)==1) sum++;
   	 	if(m((*it).x-1,(*it).y+1)==1) sum++;
   	 	if(m((*it).x+1,(*it).y+1)==1) sum++;
   	 	if(m((*it).x+1,(*it).y-1)==1) sum++;
   	 	switch(sum)
   	 	{
   	 		case 0: a++;break;
   	 		case 1: b++;break;
   	 		case 2: c++;break;
   	 		case 3: d++;break;
   	 		case 4: e++;break;
			}
   	 	
		}
   }
   cout<

 

你可能感兴趣的:(ccf)