結果
問題 | No.2372 既視感 |
ユーザー | Carpenters-Cat |
提出日時 | 2023-07-07 21:32:54 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 838 bytes |
コンパイル時間 | 2,219 ms |
コンパイル使用メモリ | 215,416 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-21 17:16:07 |
合計ジャッジ時間 | 3,092 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main () { int N, K, Q; cin >> N >> K >> Q; unordered_map<string, int> mp; queue<string> S; while (Q--) { int t; cin >> t; if (t == 1) { string s; cin >> s; mp[s] ++; S.push(s); while (S.size() > N) { auto a = S.front(); S.pop(); mp[a] --; } } else { string A[6]; int D[6]; for (int i = 0; i < 6; i ++) { cin >> A[i] >> D[i]; } int s = 0; int fl = 0; while (fl < 6) { int d = D[fl]; if (mp.find(A[fl]) != mp.end() && mp[A[fl]]) { d = min(d, K); } s += d; if (s > 60) { break; } fl ++; } cout << fl << endl; for (int i = 0; i < fl; i ++) { mp[A[i]] ++; S.push(A[i]); while (S.size() > N) { auto a = S.front(); S.pop(); mp[a] --; } } } } }