zoukankan      html  css  js  c++  java
  • A

    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.

    题解:

    判断一个点有没有被东西南北四个点包围 O(n^2)

    s

     1 #include<stdio.h>
     2 struct node{
     3     int x;
     4     int y;
     5 }points[205];
     6 int main() {
     7     int n ;
     8     scanf("%d",&n);
     9         for(int i = 0; i < n; i++) {
    10             scanf("%d %d",&points[i].x,&points[i].y);
    11         }
    12         int ans = 0;
    13         for(int i = 0; i < n; i++) {
    14             int a = 0;
    15             int b = 0;
    16             int c = 0;
    17             int d = 0;
    18             for(int  j = 0 ; j < n; j++) {
    19                 if(i == j) continue;
    20                 if(points[j].y == points[i].y && points[i].x < points[j].x) a = 1; //right
    21                 else if(points[j].y == points[i].y && points[i].x > points[j].x) b = 1; //left
    22                 else if(points[j].y > points[i].y && points[i].x == points[j].x) c = 1; //up
    23                 else if(points[j].y < points[i].y && points[i].x == points[j].x) d = 1; //down
    24                 
    25                 if((a + b + c + d )== 4) {
    26                     ans++;
    27                     break;
    28                 }
    29                 
    30             }
    31         }
    32         printf("%d
    ",ans);
    33     
    34     
    35     return 0;
    36 }
  • 相关阅读:
    gThumb 3.1.2 发布,支持 WebP 图像
    航空例行天气预报解析 metaf2xml
    Baruwa 1.1.2 发布,邮件监控系统
    Bisect 1.3 发布,Caml 代码覆盖测试
    MoonScript 0.2.2 发布,基于 Lua 的脚本语言
    Varnish 入门
    快速增量备份程序 DeltaCopy
    恢复模糊的图像 SmartDeblur
    Cairo 1.12.8 发布,向量图形会图库
    iText 5.3.4 发布,Java 的 PDF 开发包
  • 原文地址:https://www.cnblogs.com/jj81/p/9033503.html
Copyright © 2011-2022 走看看