#include<bits/stdc++.h>
#define max 1005
using namespace std;
struct L {
int x;
int y;
};//存放垃圾点坐标
L a[max];
int main() {
int t,j,k;
int flag=0;//记录是否存在放置垃圾桶的点
cin >> t;
for(int i = 0; i < t; i++) {
cin>>j>>k;
a[i].x=j;
a[i].y=k;
}//录入存在的垃圾点
int f[5]= {0,0,0,0,0};
for(int j = 0; j < t; j++) {//逐个判断垃圾点四周是否都存在垃圾点
int m = a[j].x;
int n = a[j].y;
int fl = 0;//四周存在垃圾点个数
int kl = 0;//对角线存在垃圾点个数
for(int i = 0; i < t; i++) {
if(m-1==a[i].x && n==a[i].y) {
fl++;
} else if(m==a[i].x && n-1==a[i].y) {
fl++;
} else if(m==a[i].x && n+1==a[i].y) {
fl++;
} else if(m+1==a[i].x && n==a[i].y) {
fl++;
}
if(m-1==a[i].x && n-1==a[i].y) {
kl++;
} else if(m+1==a[i].x && n-1==a[i].y) {
kl++;
} else if(m-1==a[i].x && n+1==a[i].y) {
kl++;
} else if(m+1==a[i].x && n+1==a[i].y) {
kl++;
}
}
if(fl==4) {
f[kl]++;
kl=0;
fl=0;
}
}
for(int i = 0; i < 5; i++) {
cout<<f[i]<<endl;
}
//while(1);
}
总结:这道题考察了一部分数据结构的知识.