A. Supercentral Point
来源:互联网 发布:jquery.media.js word 编辑:程序博客网 时间:2024/05/19 02:02
One day Vasya painted a Cartesian coordinate system on a piece of paper and marked some set of points (x1, y1), (x2, y2), ..., (xn, yn). Let's define neighbors for some fixed point from the given set (x, y):
- point (x', y') is (x, y)'s right neighbor, if x' > x and y' = y
- point (x', y') is (x, y)'s left neighbor, if x' < x and y' = y
- point (x', y') is (x, y)'s lower neighbor, if x' = x and y' < y
- point (x', y') is (x, y)'s upper neighbor, if x' = x and y' > y
We'll consider point (x, y) from the given set supercentral, if it has at least one upper, at least one lower, at least one left and at least one right neighbor among this set's points.
Vasya marked quite many points on the paper. Analyzing the picture manually is rather a challenge, so Vasya asked you to help him. Your task is to find the number of supercentral points in the given set.
The first input line contains the only integer n (1 ≤ n ≤ 200) — the number of points in the given set. Next n lines contain the coordinates of the points written as "x y" (without the quotes) (|x|, |y| ≤ 1000), all coordinates are integers. The numbers in the line are separated by exactly one space. It is guaranteed that all points are different.
Print the only number — the number of supercentral points of the given set.
81 14 23 11 20 20 11 01 3
2
50 00 11 00 -1-1 0
1
In the first sample the supercentral points are only points (1, 1) and (1, 2).
In the second sample there is one supercental point — point (0, 0).
解题说明:此题就是判断某个点的上下左右是否都有点存在,用四个bool类型的数组存储某个点是否有上下左右的点的情况即可,当全部为true时即为满足要求的点
#include <iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int main(){int n,i,j;int x[201],y[201];int sum=0;bool up[201],down[201],left[201],right[201];scanf("%d",&n);for(i=0;i<n;i++){scanf("%d %d",&x[i],&y[i]);}for(i=0;i<201;i++){up[i]=false;down[i]=false;left[i]=false;right[i]=false;}for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j){continue;}else{if(x[j]>x[i]&&y[j]==y[i]){right[i]=true;}if(x[j]<x[i]&&y[j]==y[i]){left[i]=true;}if(x[j]==x[i]&&y[j]>y[i]){up[i]=true;}if(x[j]==x[i]&&y[j]<y[i]){down[i]=true;}}}}for(i=0;i<n;i++){if(up[i]&&down[i]&&left[i]&&right[i]){sum++;}}printf("%d\n",sum); return 0;}
- A. Supercentral Point
- codeforces A. Supercentral Point 题解
- CodeForces 165A Supercentral Point
- Supercentral Point
- Codeforces Round #112 (Div. 2)---A. Supercentral Point
- A Different Vantage Point
- A new starting point
- A. Point on Spiral
- A Point Light Demo
- Display Point for a Location
- Is is A Turning Point?
- What's a ‘sequence point’
- calculate a point in triangle
- max-point-on-a-line
- Add a point on a map
- A Script to Skin a Point Cloud
- Find closest point on a Linestring to another point
- Display a symbol on map.center point
- snd_kcontrol探究
- 音频采样概念
- 陆兆禧将任阿里巴巴CEO 12年前曾是酒店服务生
- ALSA编程细节分析
- ACM-数据统计之重定向vsfopen
- A. Supercentral Point
- 数据层执行存储过程的方法,内部含有输出参数
- POJ1936:All in All
- 获得页码条,好看的分页
- hibernate理解
- snd_kcontrol_new名称中的SOURCE字段
- C与C++
- 网赚项目之站群第一课如何利用站群快速赚钱
- “科技两会”出硕果,蓝汛获奖预示IT业渐入佳境