zoukankan      html  css  js  c++  java
  • codeforces29A

    Spit Problem

     CodeForces - 29A 

    In a Berland's zoo there is an enclosure with camels. It is known that camels like to spit. Bob watched these interesting animals for the whole day and registered in his notepad where each animal spitted. Now he wants to know if in the zoo there are two camels, which spitted at each other. Help him to solve this task.

    The trajectory of a camel's spit is an arc, i.e. if the camel in position x spits dmeters right, he can hit only the camel in position x + d, if such a camel exists.

    Input

    The first line contains integer n (1 ≤ n ≤ 100) — the amount of camels in the zoo. Each of the following n lines contains two integers xi and di ( - 104 ≤ xi ≤ 104, 1 ≤ |di| ≤ 2·104) — records in Bob's notepad. xi is a position of the i-th camel, and di is a distance at which the i-th camel spitted. Positive values of dicorrespond to the spits right, negative values correspond to the spits left. No two camels may stand in the same position.

    Output

    If there are two camels, which spitted at each other, output YES. Otherwise, output NO.

    Examples

    Input
    2
    0 1
    1 -1
    Output
    YES
    Input
    3
    0 1
    1 1
    2 -2
    Output
    NO
    Input
    5
    2 -10
    3 10
    0 5
    5 -5
    10 1
    Output
    YES

    sol:并不知道P该怎么做,反正我是C,我有map。。。
    #include <bits/stdc++.h>
    using namespace std;
    typedef int ll;
    inline ll read()
    {
        ll s=0;
        bool f=0;
        char ch=' ';
        while(!isdigit(ch))
        {
            f|=(ch=='-'); ch=getchar();
        }
        while(isdigit(ch))
        {
            s=(s<<3)+(s<<1)+(ch^48); ch=getchar();
        }
        return (f)?(-s):(s);
    }
    #define R(x) x=read()
    inline void write(ll x)
    {
        if(x<0)
        {
            putchar('-'); x=-x;
        }
        if(x<10)
        {
            putchar(x+'0');    return;
        }
        write(x/10);
        putchar((x%10)+'0');
        return;
    }
    #define W(x) write(x),putchar(' ')
    #define Wl(x) write(x),putchar('
    ')
    const int N=105;
    int n,X[N],D[N];
    map<int,bool>Bo;
    map<int,int>Id;
    int main()
    {
        int i;
        R(n);
        for(i=1;i<=n;i++)
        {
            R(X[i]); R(D[i]); Bo[X[i]]=1; Id[X[i]]=i;
        }
        for(i=1;i<=n;i++) if(Bo[X[i]+D[i]])
        {
            int oo=Id[X[i]+D[i]];
            if(Id[X[oo]+D[oo]]==i) return puts("YES"),0;
        }
        puts("NO");
        return 0;
    }
    /*
    Input
    2
    0 1
    1 -1
    Output
    YES
    
    Input
    3
    0 1
    1 1
    2 -2
    Output
    NO
    
    Input
    5
    2 -10
    3 10
    0 5
    5 -5
    10 1
    Output
    YES
    */
    View Code
     
  • 相关阅读:
    IIS7.5 HTTP 错误 500 调用loadlibraryex失败的解决方法
    VB6.0 excel 导入和导出
    SQL 实现 成绩表形式的转换
    计算月初和月末,年初和年末的日期
    一篇文章学LINQ(原创)
    浙江省仙居县发现罕见丹霞地貌大型“天坑”
    浙江省仙居县发现特大型丹霞地貌洞穴
    EFUpdate
    163邮件出错:不允许使用邮箱名称。 服务器响应为: authentication is required,smtp7,C8CowEDpS0+Uke9VvSmXBg--.546S2 1441763733
    vmware 安装dos注意
  • 原文地址:https://www.cnblogs.com/gaojunonly1/p/10738408.html
Copyright © 2011-2022 走看看