短到爆炸的代码 - P1097题解(STL map牌)

2024-08-30

原题传送门 知周所众,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;
}

本代码献给那些和我一样看不懂别人题解的蒟蒻