AcWing 3213. 数字排序(25行解题)
原题链接
简单
作者:
共勉_4
,
2024-12-07 13:53:26
,
所有人可见
,
阅读 2
1 利用map默认按照升序存储
2 利用greater<int>
改变map为降序存储
C++ 代码
#include<bits/stdc++.h>
using namespace std;
map<int, map<int, int>, greater<int>> mp;
map<int, int> mp2;
int main(){
int n,m; cin >> n;
// 输入
for(int i=0; i<n; i++){
cin >> m;
mp2[m]++; // 计数
}
for(auto v:mp2){
mp[v.second][v.first] = v.second; // 按照 v.second 降序排序,通时按照 v.first 升序排序
}
for(auto t:mp){
for(auto e:t.second){
cout << e.first << ' ' << e.second << endl; // 打印结果
}
}
return 0;
}