原题传送门 知周所众,STL里的map可以当数组用,可以给中括号里塞上一些奇奇怪怪的东西,如:
map<string,int> mp;
mp["狗蛋"] = 0;
而map遍历时是从小到大遍历,也就可以自动排序
因此我们就可以写出一个短到爆炸~的代码:
#include <bits/stdc++.h>
#define int long long // 十年OI一场空,不开long long见祖宗
using namespace std;
map<int,int> mp;
int n;
signed main(){ // 冷知识:signed(有符号整型) == int(短整型)
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n; // 装样子的
while (cin >> n) mp[n]++; // 挨个输入,丢进map里
for (auto i : mp) cout << i.first << ' ' << i.second << '\n'; // 遍历+输出
return 0;
}