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

hamayanhamayan's blog

Soujitsu Query [WASEDAJITSUGYO_SCIENCECLUB_FESTIVAL_CONTEST2019 C]

解説

https://www.hackerrank.com/contests/wasedajitsugyo-scienceclub-festival-contest2019/challenges/soujitsu-query/submissions/code/1316764213

集合に含まれる数を保持したsetも持ちながら2番目の数を特定しよう。
要素の個数はmapで持っておけばいい。
109を超える可能性があるので、long longで答えること。

int Q;
int X[1010101], Y[1010101];
map<int, int> cnt;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> Q;

    set<int> used;
    rep(q, 0, Q) {
        int t;
        cin >> t;

        if (t == 1) {
            int a;
            cin >> a;
            used.insert(a);
            cnt[a]++;
        } else {
            if (used.size() < 2) continue;

            auto ite = used.rbegin();
            ite++;
            int a = *ite;

            ll ans = 1LL * a * cnt[a];
            printf("%lld\n", ans);
        }
    }
}