Spit Problem
CodeForces - 29AIn 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
2
0 1
1 -1
YES
3
0 1
1 1
2 -2
NO
5
2 -10
3 10
0 5
5 -5
10 1
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 */