原题链接
#include<iostream>
using namespace std;
int n;
const int N=1010;
pair<int,int>arr[N];
int res[5];
bool judge(int a,int b){
if(arr[a].first==arr[b].first){
return abs(arr[a].second-arr[b].second)==1;
}else if(arr[a].second==arr[b].second){
return abs(arr[a].first-arr[b].first)==1;
}
return false;
}
bool judge2(int a,int b){
return (abs(arr[a].first-arr[b].first)==1)&&(abs(arr[a].second-arr[b].second)==1);
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
int x,y;
cin>>x>>y;
arr[i]={x,y};
}
for(int i=0;i<n;i++){
int a=0,b=0;
for(int j=0;j<n;j++){
if(judge(i,j))a++;
else if(judge2(i,j))b++;
}
if(a==4)res[b]++;
}
for(int i=0;i<5;i++)cout<<res[i]<<endl;
}