結果
問題 |
No.2372 既視感
|
ユーザー |
|
提出日時 | 2023-06-15 19:18:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,356 bytes |
コンパイル時間 | 1,854 ms |
コンパイル使用メモリ | 180,828 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-01 15:59:39 |
合計ジャッジ時間 | 2,785 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 WA * 5 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll N, K, Q; cin >> N >> K >> Q; set<string>S; queue<string>A; while (Q--) { int t; cin >> t; if (t == 1) { string T; cin >> T; if (S.find(T) == S.end()) { S.insert(T); A.push(T); if (S.size() > N) { T = A.front(); A.pop(); S.erase(T); } } } else { string T; ll time; ll ans = 0, sum = 0; queue<string>B; for (int i = 0; i < 6; i++) { cin >> T >> time; if (S.find(T) == S.end()) { sum += time; } else sum += min(time, K); if (sum <= 60) { B.push(T); ans++; } } cout << ans << endl; while (!B.empty()) { if (S.find(B.front()) == S.end()) { A.push(B.front()); S.insert(B.front()); if (A.size() > N) { S.erase(A.front()); A.pop(); } } B.pop(); } } } }