結果
| 問題 | No.3298 K-th Slime | 
| コンテスト | |
| ユーザー |  forest3 | 
| 提出日時 | 2025-10-29 15:32:46 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                WA
                                 
                             | 
| 実行時間 | - | 
| コード長 | 851 bytes | 
| コンパイル時間 | 1,650 ms | 
| コンパイル使用メモリ | 166,100 KB | 
| 実行使用メモリ | 10,496 KB | 
| 最終ジャッジ日時 | 2025-10-29 15:32:52 | 
| 合計ジャッジ時間 | 5,570 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 23 WA * 2 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for (int i = a; i < b; i++)
using ll = long long;
int main(){
	int n, k, q;
	cin >> n >> k >> q;
	multiset<int> sl, sh;
	rep(i, 0, n) {
		int a;
		cin >> a;
		int sz = sl.size();
		if(sz < k) sl.insert(a);
		else {
			int e = *prev(sl.end());
			if(a < e) {
				sl.insert(a);
				sh.insert(e);
				sl.erase(prev(sl.end()));
			}
			else sh.insert(a);
		}
	}
	rep(qi, 0, q) {
		int t, x, y;
		cin >> t;
		if(t == 1) {
			cin >> x;
			int e = *prev(sl.end());
			if(x < e) {
				sl.insert(x);
				sh.insert(e);
				sl.erase(prev(sl.end()));
			}
			else sh.insert(x);
		}
		else if(t == 2) {
			cin >> y;
			int e = *prev(sl.end());
			sh.insert(e + y);
			sl.erase(prev(sl.end()));
			sl.insert(*sh.begin());
			sh.erase(sh.begin());
		}
		else cout << *prev(sl.end()) << endl;
	}
}
            
            
            
        