版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载。 https://blog.csdn.net/kenden23/article/details/24862581

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.

Input

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.

Output

Print the only number — the number of supercentral points of the given set.

Sample test(s)
input
8
1 1
4 2
3 1
1 2
0 2
0 1
1 0
1 3
output
2

暴力法可过,效率O(n^2)

可是使用hash表能够把效率降到近乎O(n)

要巧妙使用两个map容器。

要对map和set容器非常熟悉了。合起来一起使用。

#include <unordered_map>
#include <set>
#include <math.h>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
using namespace std; void SupercentralPoint()
{
int n = 0, x, y;
cin>>n;
unordered_map<int, set<int> > xumIS;
unordered_map<int, set<int> > yumIS;
pair<int, int> *pii = new pair<int, int>[n];
for (int i = 0; i < n; i++)
{
cin>>x>>y;
pii[i].first = x;
pii[i].second = y;
xumIS[x].insert(y);
yumIS[y].insert(x);
}
int supers = 0;
for (int i = 0; i < n; i++)
{
if ( pii[i].second != *(xumIS[pii[i].first].begin()) &&
pii[i].second != *(xumIS[pii[i].first].rbegin()) &&
pii[i].first != *(yumIS[pii[i].second].begin()) &&
pii[i].first != *(yumIS[pii[i].second].rbegin()) )
supers++;
}
cout<<supers;
delete [] pii;
}

最新文章

  1. SAMBA 共享服务器搭建
  2. 子类重载父类的方法“parent::方法名”转于 恩聪PHP学习教程
  3. oracle调试存储过程
  4. 为什么需要auto_ptr_ref
  5. loadrunner之C语言编程
  6. 编译内核出错:invalid option `abi=aapcs-linux&#39; 解决办法
  7. C:应用于字符串处理函数
  8. structs常用的Action
  9. ehCache浅谈(转)
  10. SQL Server 2008 R2中,变表的右键弹出菜单中的“选择前1000行”为“选择所有行”
  11. 移动UI
  12. es6 Symbol类型
  13. The 19th Zhejiang University Programming Contest Sponsored by TuSimple (Mirror) B&quot;Even Number Theory&quot;(找规律???)
  14. [SCOI2010]幸运数字(容斥+爆搜)
  15. 2017蓝桥杯 省赛D题(方格分割)
  16. Mac 日常使用tips
  17. scikit-image 图像处理库介绍
  18. BZOJ4065 : [Cerc2012]Graphic Madness
  19. 女超人第三季/全集Supergirl迅雷下载
  20. SVN里直接把本地目录纳入管理

热门文章

  1. 第8章 scrapy进阶开发(1)
  2. C# 之VS程序打包
  3. 二、socket编写简单BIO的HTTP服务器
  4. windows上memecache添加多个端口命令
  5. HTML中字体的垂直排列
  6. 【转】Java策略消除if else
  7. 撩课-Web大前端每天5道面试题-Day14
  8. 如何解决本地mvn编译安装的jar包在IDEA的pom文件中找不到
  9. hdu 1251 统计难题 字典树第一题。
  10. MVC 中使用kindEditor 图片上传在IE 上进行上传出现的问题