Codeforces Round #450 (Div. 2) A. Find Extra One【模拟/判断是否能去掉一个点保证剩下的点在Y轴同侧】

A. Find Extra One
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You have n distinct points on a plane, none of them lie on OY axis. Check that there is a point after removal of which the remaining points are located on one side of the OY axis.

Input

The first line contains a single positive integer n (2 ≤ n ≤ 105).

The following n lines contain coordinates of the points. The i-th of these lines contains two single integers xi and yi (|xi|, |yi| ≤ 109,xi ≠ 0). No two points coincide.

Output

Print "Yes" if there is such a point, "No" — otherwise.

You can print every letter in any case (upper or lower).

Examples
input
3
1 1
-1 -1
2 -1
output
Yes
input
4
1 1
2 2
-1 1
-2 2
output
No
input
3
1 2
2 1
4 60
output
Yes
Note

In the first example the second point can be removed.

In the second example there is no suitable for the condition point.

In the third example any point can be removed.

 

 【分析】:记录x>0和x<0的点的个数,若个数为1或n,合法。

【代码】:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int maxn = 1e5+1000;
int c1,c2;

struct node
{
    int x,y;
}a[maxn];

int main()
{
    int n;
    scanf("%d",&n);

    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&a[i].x,&a[i].y);
        if(a[i].x < 0) c1++;
        if(a[i].x > 0) c2++;
    }
    //printf("c1=%d c2=%d\n",c1,c2);
    if(c1==n||c2==n||c1==1||c2==1)
    {
        puts("Yes");
            return 0;
    }
    else
    {
        puts("No");
             return 0;
    }
}
View Code

 

posted @ 2017-12-12 09:42  Roni_i  阅读(134)  评论(0编辑  收藏  举报