思路:
用两个整型数组a,b,分别存每个学生的原始位置和目标位置,然后排序,必须是一一对应才可以进行交换。
1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cstdlib>
5 #define max 500005
6 #define FIN freopen("input.txt","r",stdin)
7 #define FOUT freopen("output.txt","w",stdout)
8 using namespace std;
9 int main()
10 {
11 //FIN;
12 //FOUT;
13 int a[max], b[max];
14 int n;
15 while (scanf("%d", &n) && n != 0)
16 {
17 bool ok = true;
18 int m = n, cnt = 0;
19 for (int i = 0; i < n; i++)
20 {
21 scanf("%d%d", &a[i], &b[i]);
22 }
23
24
25 sort(a, a + n);
26 sort(b, b + n);
27
28 for (int i = 0; i < n; i++)
29 {
30 if (a[i] != b[i])
31 {
32 ok = false;
33 break;
34 }
35 }
36 if (ok)
37 printf("YES\n");
38 else
39 printf("NO\n");
40 }
41 return 0;
42 }