結果
問題 |
No.649 ここでちょっとQK!
|
ユーザー |
|
提出日時 | 2018-11-18 19:37:56 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 183 ms / 3,000 ms |
コード長 | 791 bytes |
コンパイル時間 | 641 ms |
コンパイル使用メモリ | 69,536 KB |
実行使用メモリ | 12,928 KB |
最終ジャッジ日時 | 2024-12-24 15:06:18 |
合計ジャッジ時間 | 6,003 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 32 |
ソースコード
#include<iostream> #include<set> using namespace std; typedef long long ll; int main(){ int q, k; scanf("%d %d", &q, &k); multiset<ll> s; multiset<ll>::iterator it = s.begin(); int op; ll val; int siz = 0; for(int i = 0; i < q; i++){ scanf("%d", &op); if(op == 1){ scanf("%lld", &val); s.insert(val); siz++; if(siz == k){ it = s.end(); it--; }else if((*it) > val){ it--; } }else if(op == 2){ if(siz >= k){ printf("%lld\n", *it); it = s.erase(it); siz--; }else{ printf("-1\n"); } } } return 0; }