#include <iostream>
using namespace std;
int n;
struct Trash{
int x, y;
};
Trash trash[1001];
int score[5] = {0};
int count = 0;
bool Find(int x, int y);
bool IsStation(Trash t);
int main(){
scanf("%d",&n);
for(int i = 0; i < n; ++i){
scanf("%d%d",&trash[i].x,&trash[i].y);
}
for(int i = 0; i < n; ++i){
if(IsStation(trash[i])){
if(Find(trash[i].x - 1, trash[i].y - 1))
count++;
if(Find(trash[i].x - 1, trash[i].y + 1))
count++;
if(Find(trash[i].x + 1, trash[i].y - 1))
count++;
if(Find(trash[i].x + 1, trash[i].y + 1))
count++;
score[count]++;
count = 0;
}
}
for(int i = 0; i < 5; ++i){
printf("%d\n",score[i]);
}
return 0;
}
//判断是否存在垃圾
bool Find(int x, int y){
for(int i = 0; i < n; ++i){
if(trash[i].x == x && trash[i].y == y) return true;
}
return false;
}
//判断是否是回收站
bool IsStation(Trash t){
if(Find(t.x - 1, t.y) && Find(t.x + 1, t.y) && Find(t.x, t.y - 1) && Find(t.x, t.y + 1))
return true;
return false;
}
CCF认证 2019-12 回收站选址
最新推荐文章于 2024-03-29 19:56:02 发布