map基本用法 .clear(), .empty(), .insert(), .size(), .erase()
用map<pair<int,int>,int>,建立两个相反的pair,如果一致,就清除
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
map<pair<int,int>,int > mp;
while(cin>>n){
if(n==0) break;
mp.clear();
for(int i=0;i<n;i++){
int a,b;
cin>>a>>b;
pair<int,int> x1=make_pair(a,b);
pair<int,int> x2=make_pair(b,a);
if(mp[x2]) mp[x2]--;
else mp[x1]++;
if(!mp[x2]) mp.erase(x2);
}
if(!mp.size()) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}