結果
| 問題 |
No.2372 既視感
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-06-24 08:36:30 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 14 ms / 2,000 ms |
| コード長 | 958 bytes |
| コンパイル時間 | 2,209 ms |
| コンパイル使用メモリ | 206,716 KB |
| 最終ジャッジ日時 | 2025-02-15 01:52:53 |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
#define ll long long
/*hi, I'm rintaro. I’m the writer of the problem.*/
int main() {
//writerの確認コード
//O(???)解法(データを消さずに毎回N個探索する)
ll N, K, Q;
cin >> N >> K >> Q;
deque<string> Kishi;
for(ll i = 0; i < Q; i++) {
ll x;
cin >> x;
if(x == 1) {
string s;
cin >> s;
Kishi.push_back(s);
}
else {
deque<string> Last = Kishi;
for(ll k = 0; Last.size() > N; k++) Last.pop_front();
vector<ll> d(6);
vector<string> t(6);
ll time_sum = 0, ok = 1;
for(ll k = 0; k < 6; k++) {
cin >> t[k] >> d[k];
if(find(Last.begin(),Last.end(),t[k]) != Last.end()) d[k] = min(d[k], K);
time_sum += d[k];
if(time_sum > 60 && ok) {
cout << k << endl;
ok = 0;
}
if(ok) Kishi.push_back(t[k]);
}
if(ok) cout << 6 << endl;
}
}
}