题解 CF165A 【Supercentral Point】
TRZ_2007
2020-06-07 10:38:48
题解 [CF165A 【Supercentral Point】](https://www.luogu.com.cn/problem/CF165A)
# Solution
其实这道题目非常的简单,由于 $n \le 100$ ,我们可以考虑**枚举**。
但是怎么确定一个点的**正**上,下,左,右的方向呢?
我们来看看这个图:
![](https://cdn.luogu.com.cn/upload/image_hosting/na16nayk.png)
通过观察可以知道:
- 1:如果一个点 $(x_1,y_1)$ 在另一个点 $(x,y)$ 的**正上方**,那么可得:$x_1 > x$,$y_1 = y$。
- 2:如果一个点 $(x_1,y_1)$ 在另一个点 $(x,y)$ 的**正下方**,那么可得:$x_1 < x$,$y_1 = y$。
- 3:如果一个点 $(x_1,y_1)$ 在另一个点 $(x,y)$ 的**正左方**,那么可得:$x_1 = x$,$y_1 < y$。
- 4:如果一个点 $(x_1,y_1)$ 在另一个点 $(x,y)$ 的**正右方**,那么可得:$x_1 = x$,$y_1 > y$。
根据我们以上的推论,我们就可以敲代码了。
# Code
```cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 209;
int n,a,b,c,d,ans;
int x[N],y[N];
int main() {
scanf("%d",&n);
for(int i = 1;i <= n;i++) {
scanf("%d %d",&x[i],&y[i]);
}
for(int i = 1;i <= n;i++) {
a = b = c = d = 0;
for(int j = 1;j <= n;j++) {
if(x[i] < x[j] && y[i] == y[j]) {
a = 1;
}
if(x[i] > x[j] && y[i] == y[j]) {
b = 1;
}
if(x[i] == x[j] && y[i] > y[j]) {
c = 1;
}
if(x[i] == x[j] && y[i] < y[j]) {
d = 1;
}
}
if(a && b && d && c) ans++;
}
printf("%d\n",ans);
return 0;
}
```