#include <iostream>
#include <map>
using namespace std;
struct node
{
int x;
int y;
};
int main()
{
map<int,map<int,int> > m;
int n;
node v[1003];
cin>>n;
for(int i=0;i<n;++i)
{
cin>>v[i].x>>v[i].y;
m[v[i].x][v[i].y] = 1;
}
int dir[4][2] = {{1,0},{-1,0},{0,1},0,-1};
int dir2[4][2] = {{-1,1},{-1,-1},{1,-1},{1,1}};
int ans[5] = {0,0,0,0,0};
for(int i=0;i<n;++i)
{
int t = 0;
for(int j=0;j<4;++j)
t+=m[v[i].x+dir[j][0]][v[i].y+dir[j][1]];
if(t==4)//满足前两个条件
{
int sum = 0;
for(int j=0;j<4;++j)
sum+=m[v[i].x+dir2[j][0]][v[i].y+dir2[j][1]];
ans[sum]++;
}
}
for(int i=0;i<5;++i)
cout<<ans[i]<<endl;
return 0;
}
CSP 201912-2 C++ map实现
最新推荐文章于 2024-08-03 11:47:07 发布