标签:
题目大意:
有n(1<=n<=500000)个学生想交换到其他学校学习。为了简单起见,规定每个想从A学校换到B学校的学生必须找一个想到B换到A的搭档。如果每个人都能搭档(一个人不能同时当多个人的搭档),学校就会同意他们交换。每个学生用两个整数A,B表示,你的任务是判断交换是否可行。
sample input:
10
1 2
2 1
3 4
4 3
100 200
57 2
2 57
1 2
2 1
10
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
0
sample output:
YES
NO
程序如下:
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 6 int a[500000],b[500000]; 7 int main() 8 { 9 int n,i; 10 while(scanf("%d",&n)!=EOF && n) 11 { 12 for( i=0;i<n;i++) 13 scanf("%d%d",&a[i],&b[i]); 14 15 sort(a,a+n); 16 sort(b,b+n); 17 for(i=0;i<n;i++) 18 { 19 if(a[i]!=b[i]) 20 { 21 printf("NO\n"); 22 break; 23 } 24 } 25 if(i==n) 26 printf("YES\n"); 27 } 28 return 0; 29 }
此题关键是应用排序题。
标签:
原文地址:http://www.cnblogs.com/x512149882/p/4655680.html