結果
問題 | No.2804 Fixer And Ratism |
ユーザー |
|
提出日時 | 2024-07-09 21:00:08 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 167 ms / 2,000 ms |
コード長 | 1,589 bytes |
コンパイル時間 | 2,502 ms |
コンパイル使用メモリ | 219,600 KB |
最終ジャッジ日時 | 2025-02-22 02:38:25 |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
#include <bits/stdc++.h>#pragma GCC target("avx2")#pragma GCC optimize("O3")#pragma GCC optimize("unroll-loops")using namespace std;using ll = long long;const ll mod = 998244353;#define fi first#define se second#define rep(i,n) for(ll i=0;i<n;i++)#define all(x) x.begin(),x.end()#define faster ios::sync_with_stdio(false);cin.tie(nullptr)int main() {ll N,Q;cin >> N >> Q;vector<ll> R(100,-1);vector<bool> used(100,false);map<string,ll> M;vector<string> VS;set<pair<ll,ll>> s1,s2;rep(i,Q){ll q;cin >> q;if(q==1){string s;ll r;cin >> s >> r;M[s]=VS.size();R[VS.size()]=r;s2.insert({r,VS.size()});VS.push_back(s);}if(q==2){ll x;cin >> x;N-=x;}if(q==3){string s;ll x;cin >> s >> x;used[M[s]]=true;N+=x;s2.erase({R[M[s]],M[s]});s1.insert({R[M[s]],M[s]});}set<pair<ll,ll>> s3;while(s1.size()+s2.size()>N){if(s2.size()>0){auto it=*s2.begin();s3.insert(it);s2.erase(it);}else{auto it=*s1.begin();s3.insert(it);s1.erase(it);}}while(s3.size()>0){auto it=*s3.begin();cout << VS[it.se] << endl;s3.erase(it);}}return 0;}