#include <iostream>
#include <cstdio>
#include <vector>
#include <utility>
#include <algorithm>
#include <functional>
using namespace std;
typedef long long ll;
int n;
int h[6] = {0};
vector<pair<ll, ll> > v;
bool up(vector<pair<ll, ll> > vv, int i){
if (find_if(vv.begin(), vv.end(), [i,vv](pair<ll, ll> p) {return p.first == vv[i].first && p.second == vv[i].second+1; }) != vv.end()) return true;
return false;
}
bool down(vector<pair<ll, ll> > vv, int i){
if (find_if(vv.begin(), vv.end(), [i,vv](pair<ll, ll> p) {return p.first == vv[i].first && p.second == vv[i].second-1; }) != vv.end()) return true;
return false;
}
bool rightt(vector<pair<ll, ll> > vv, int i){
if (find_if(vv.begin(), vv.end(), [i,vv](pair<ll, ll> p) {return p.first == vv[i].first+1 && p.second == vv[i].second; }) != vv.end()) return true;
return false;
}
bool leftt(vector<pair<ll, ll> > vv, int i){
if (find_if(vv.begin(), vv.end(), [i,vv](pair<ll, ll> p) {return p.first == vv[i].first-1 && p.second == vv[i].second; }) != vv.end()) return true;
return false;
}
int lu(vector<pair<ll, ll> > vv, int i){
if (find_if(vv.begin(), vv.end(), [i,vv](pair<ll, ll> p) {return p.first == vv[i].first-1 && p.second == vv[i].second+1; }) != vv.end()) return 1;
return 0;
}
int rd(vector<pair<ll, ll> > vv, int i){
if (find_if(vv.begin(), vv.end(), [i,vv](pair<ll, ll> p) {return p.first == vv[i].first+1 && p.second == vv[i].second-1; }) != vv.end()) return 1;
return 0;
}
int ru(vector<pair<ll, ll> > vv, int i){
if (find_if(vv.begin(), vv.end(), [i,vv](pair<ll, ll> p) {return p.first == vv[i].first+1 && p.second == vv[i].second+1; }) != vv.end()) return 1;
return 0;
}
int ld(vector<pair<ll, ll> > vv, int i){
if (find_if(vv.begin(), vv.end(), [i,vv](pair<ll, ll> p) {return p.first == vv[i].first-1 && p.second == vv[i].second-1; }) != vv.end()) return 1;
return 0;
}
int main(){
cin >> n;
while (n--){
ll x, y;
cin >> x >> y;
v.push_back(make_pair(x, y));
}
for (int i = 0; i < v.size(); i++){
if (rightt(v, i) && leftt(v, i) && up(v, i) && down(v, i)){
h[lu(v, i)+ru(v, i)+ld(v, i)+rd(v, i)] += 1;
}
}
for (int i = 0; i < 5; i++) cout << h[i] << endl;
return 0;
}
【CSP】201912-2 回收站选址
最新推荐文章于 2022-09-17 16:03:55 发布