题意:可以想象成数字的交换,然后最后判断是否有相换的数字是否有在换回来
思路:如果匹配的話那麼兩邊的輸入排序後一定是一致的
代碼:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <set>
#include <ctype.h>//isalpha,isdight,toupper
#include <map>
#include <sstream>
typedef long long ll;
using namespace std;
#define inf 0x3f3f3f3f
const int maxn=500000+5;
int n,n1[maxn],n2[maxn];
int main(){
while(scanf("%d",&n)&&n){
bool flag=true;
for(int i=0;i<n;i++){
scanf("%d %d",&n1[i],&n2[i]);
}
if(n%2!=0){
flag=false;
cout<<"NO"<<endl;
continue;
}
sort(n1,n1+n);
sort(n2,n2+n);
for(int i=0;i<n;i++){
if(n1[i]!=n2[i]){
cout<<"NO"<<endl;
flag=false;
break;
}
}
if(flag)printf("YES\n");
}
return 0;
}