此题UVa链接单击这里
=================
对输入的两列值,分别进行列排序。然后两列值相同位置的值进行比较,只要位置相同的值不同就“NO”。
案例一排序前
1 2
2 1
3 4
4 3
100 200
200 100
57 2
2 57
1 2
2 1
案例一排序后
1 1
1 1
2 2
2 2
2 2
3 3
4 4
57 57
100 100
200 200
数都是对应相等
案例二排序前
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
案例二排序后位置不会改变,当判断第一行1!=2时答案就已经出来了。
附代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int N, i;
while (cin >> N&&N)
{
vector<int>a(N);
vector<int>b(N);
for (i = 0; i<N; i++)
cin >> a[i] >> b[i];
sort(a.begin(), a.end());
sort(b.begin(), b.end());
for (i = 0; i<N; i++)
if (a[i] != b[i])
break;
if (i >= N)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
有问题联系企鹅791267032
邮箱地址….wutanrong@Hotmail.com