#37332: 想請問為什麼這樣過不了?


max101097war@gmail.com (FP)

學校 : 不指定學校
編號 : 181357
來源 : [101.9.101.24]
最後登入時間 :
2024-11-06 17:41:50
a091. 今晚打老虎 | From: [101.10.94.196] | 發表日期 : 2023-09-02 01:22

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    multiset<int> s;
    while (cin >> n) {
        if (n == 1) {
            int tmp; cin >> tmp;
            s.insert(tmp);
        }
        else if (n == 2) {
            int tmp = *(--s.end()); s.erase(tmp);
            cout << tmp << '\n';
        }
        else if (n == 3) {
            int tmp = *(s.begin()); s.erase(tmp);
            cout << tmp << '\n';
        }
    }

    return 0;
}
 
#37398: Re: 想請問為什麼這樣過不了?


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [111.71.216.22]
最後登入時間 :
2024-12-03 08:31:08
a091. 今晚打老虎 | From: [39.12.34.62] | 發表日期 : 2023-09-05 20:47

s.erase(tmp)


這會刪除所有值為tmp的數字,但是題意應該是只刪除一個數字

可以改成s.erase(s.find(tmp))

 
ZeroJudge Forum