解説
集合に含まれる数を保持した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); } } }