結果

問題 No.2372 既視感
ユーザー Carpenters-CatCarpenters-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
権限があれば一括ダウンロードができます

ソースコード

diff #

#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] --;
				}
			}
		}
	}
}
0