map遍历死循环了就换成了vector,不太明白为啥,不过vector用着也挺顺手的。
下面展示一些 内联代码片
。
#include<iostream>
#include<vector>
#include<map>
using namespace std;
map<pair<int,int>,int> mp;
vector<pair<int,int>> v;
int n,x,y,score[5];
int main(){
cin>>n;
for(int i=0;i<n;i++){
v.push_back(make_pair(x,y));
cin>>x>>y;
mp[make_pair(x,y)]=1;
}
for(auto it=v.begin();it!=v.end();it++){
x=it->first;
y=it->second;
if(mp[make_pair(x+1,y)]==1&&mp[make_pair(x-1,y)]==1&&mp[make_pair(x,y+1)]==1&&mp[make_pair(x,y-1)]==1){
int t=0;
if(mp[make_pair(x+1,y+1)]==1){
t++;
}
if(mp[make_pair(x+1,y-1)]==1){
t++;
}
if(mp[make_pair(x-1,y+1)]==1){
t++;
}
if(mp[make_pair(x-1,y-1)]==1){
t++;
}
score[t]++;
}
}
for(int i=0;i<5;i++)cout<<score[i]<<endl;
return 0;
}