提交後100分的c++程序如下:
#include<bits/stdc++.h>
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.y;
return x<s.x;
}
};
set<point> s;
int m(int x,int y)
{
set<point>::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<point>::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<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<e<<endl;
return 0;
}