#include <bits/stdc++.h>
using namespace std;
struct node
{
int a,b;
bool operator < (const node &th) const{
if(a != th.a) return a < th.a;
return b > th.b;
}
};
int main(){
int n;
while(cin >> n){
node a[100];
priority_queue<node> que;
for(int i = 0;i < n;i++)
cin >> a[i].a >> a[i].b;
for(int i = 0;i < n;i++){
que.push(a[i]);
}
sort(a,a+n);
cout << "a[i]:"<<endl;
for(int i = 0;i < n;i++)
cout << a[i].a <<' '<< a[i].b <<endl;
cout << "queue:" <<endl;
for(int i = 0;i < n;i++){
node q = que.top();
que.pop();
cout << q.a << ' '<<q.b << endl;
}
}
return 0;
}
/*
10
1 9
1 5
9 1
5 9
4 2
1 8
11 8
94 5
25 8
142 8
*/
输入数据:
10
1 9
1 5
9 1
5 9
4 2
1 8
11 8
94 5
25 8
142 8
输出:
在代码中,我是先按结构体的a从小到大排序,如果相同,再按b从大到小排序
由输出可以看出,优先队列的输出结果正好与数据排序的结果相反