只用了这么几行就AC了,我也是醉了~~,这个方法纯属突发奇想,也不知道有没有漏洞,反正是过了uva的测试数据了。
方法就是将每行的第一个数存进a[],第二个数存进b[] ,将他们排序后比较,一旦有不一样的就输出NO!
#include<cstdio>
#include<map>#include<algorithm>
#include<iostream>
using namespace std;
map<int,int>q;
map<int,int>p;
int a[500500],b[500500],c[500500];
int main(){
int n;
while(scanf("%d",&n)!=EOF&&n){
for(int i=0;i<n;i++)
scanf("%d %d",&a[i],&b[i]);
sort(a,a+n);
sort(b,b+n);
int ans=1;
for(int i=0;i<n;i++)
if(a[i]!=b[i]){
ans=0;break;
}
if(ans==1) printf("YES\n");
else printf("NO\n");
}
return 0;
}