結果

問題 No.2804 Fixer And Ratism
ユーザー かちわけかちわけ
提出日時 2024-07-12 23:25:31
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
RE  
実行時間 -
コード長 1,401 bytes
コンパイル時間 1,962 ms
コンパイル使用メモリ 176,940 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-07-12 23:25:41
合計ジャッジ時間 6,673 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,812 KB
testcase_01 AC 2 ms
6,940 KB
testcase_02 AC 2 ms
6,944 KB
testcase_03 RE -
testcase_04 RE -
testcase_05 RE -
testcase_06 RE -
testcase_07 RE -
testcase_08 RE -
testcase_09 RE -
testcase_10 RE -
testcase_11 RE -
testcase_12 RE -
testcase_13 RE -
testcase_14 RE -
testcase_15 RE -
testcase_16 RE -
testcase_17 RE -
testcase_18 RE -
testcase_19 RE -
testcase_20 RE -
testcase_21 RE -
testcase_22 RE -
testcase_23 RE -
testcase_24 RE -
testcase_25 RE -
testcase_26 RE -
testcase_27 RE -
testcase_28 RE -
testcase_29 RE -
testcase_30 RE -
testcase_31 RE -
testcase_32 RE -
testcase_33 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#define REP(i, n) for(int i=0 ; (i)<(int)(n) ; (i)++)

int main(void){
    int n, q, count = 0;
    cin >> n >> q;
    set<pair<int, string>> bi;
    REP(i, q){
        int q1;
        cin >> q1;
        if(q1 == 1){
            string q2;
            int q3;
            cin >> q2 >> q3;
            bi.insert({q3, q2});
            count++;
            if(n < count){
                for(auto i : bi){
                    cout << i.second << endl;
                    break;
                }
                bi.erase(bi.begin());
                count--;
            }
        }else if(q1 == 2){
            int q2;
            cin >> q2;
            n -= q2;
            while(n < count){
                for(auto i : bi){
                    cout << i.second << endl;
                    break;
                }
                bi.erase(bi.begin());
                count--;
            }
        }else if(q1 == 3){
            string q2;
            int q3;
            cin >> q2 >> q3;
            n += q3;
            auto itr = find_if(bi.begin(), bi.end(), [q2](pair<int, string> p) {return p.second == q2;});
            bi.erase(itr);
            pair<int, string> tmp = *itr;
            if(tmp.first < 4001) tmp.first += 10000;
            bi.insert(tmp);
        }
    }
    //for(auto i : bi) cout << i.first << ' ' << i.second << endl;
}
0