现在有 n 个人,每个人都想从一个地方到另外一个地方,
如果 一个人想从A 到B, 另一个人从B 到 A ,那么可以凑成一对,
问是否所有的人都可以凑成对。
思路:
就是 pair 了。
map + pair,
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int f[N],n,m,k,x,y;
map<pair<int,int> , int > s;
map<pair<int,int>, int > ::iterator it;
bool ok(){
for (it = s.begin();it != s.end(); ++it)
if (it -> second) return 0;
return 1;
}
int main(){
while(~scanf("%d",&n)){
if (!n) break;
s.clear();
while(n--){
scanf("%d%d",&x,&y);
x < y ? ++s[make_pair(x,y)]:--s[make_pair(y,x)];
}
puts(ok()? "YES":"NO");
}
return 0;
}