はまやんはまやんはまやん

hamayanhamayan's blog

Do you know the second highest mountain? [マイナビプログラミングコンテスト2021(AtCoder Beginner Contest 201) B]

https://atcoder.jp/contests/abc201/tasks/abc201_b

解説

https://atcoder.jp/contests/abc201/submissions/22640502

C++だとpairでソートするのがいい。
pairでソートした場合は、第一要素でまずはソートして、同値であれば、第二要素でソートするようなソート方法である。
山の高さでソートする必要があるので(山の高さ,山の名前)を入れてソートすることにする。
こうすると、山の高さでちゃんとソートしてくれるので、この状態でソートして、二番目に大きいものの山の名前を取得して答えればいい。
降順ソートなので、sort(all(v), greater<int,string>())として2番目を答えてもいい。

int N;
vector<pair<int, string>> v;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) {
        string S; int T;
        cin >> S >> T;
        v.push_back({ T, S });
    }
    sort(all(v));

    cout << v[v.size() - 2].second << endl;
}