#define _GLIBCXX_DEBUG // kyopuro2.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。 // #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define all(v) v.begin(), v.end() const long long INF = 1LL << 60; template inline bool chmin(T & a, T b) { if (a > b) { a = b; return true; } return false; } template inline bool chmax(T & a, T b) { if (a < b) { a = b; return true; } return false; } using ll = long long; using ch = char; using st = string; using vi = vector; using vll = vector; using vb = vector; using vc = vector; using vs = vector; using vvi = vector; using vvb = vector; using vvc = vector; using vvs = vector; using pii = pair; using vpii = vector ; using p_qi = priority_queue; // DP テーブル ll dp[100008]; int main() { int N, K, Q; cin >> N >> K >> Q; st s; vector A(0); vs C(6); int query,d,count; int sum = 0; bool can; rep(i, Q) { sum = 0; can = false; count = 0; cin >> query; if (query == 1) { cin >> s; A.push_back(s); } else { rep(j, 6) { can = false; cin >> C[j] >> d; int sixe = A.size(); int y = max(-1, sixe - N); for (int k = sixe - 1; k > y - 1; k--) { if (A[k] == C[j]) { can = true; } } if (can) sum += min(d, K); else sum += d; if (sum > 60) { count = j; break; } if (j == 5) { count = 6; } } cout << count << "\n"; rep(l, count) { A.push_back(C[l]); } } } } // プログラムの実行: Ctrl + F5 または [デバッグ] > [デバッグなしで開始] メニュー // プログラムのデバッグ: F5 または [デバッグ] > [デバッグの開始] メニュー // 作業を開始するためのヒント: // 1. ソリューション エクスプローラー ウィンドウを使用してファイルを追加/管理します // 2. チーム エクスプローラー ウィンドウを使用してソース管理に接続します // 3. 出力ウィンドウを使用して、ビルド出力とその他のメッセージを表示します // 4. エラー一覧ウィンドウを使用してエラーを表示します // 5. [プロジェクト] > [新しい項目の追加] と移動して新しいコード ファイルを作成するか、[プロジェクト] > [既存の項目の追加] と移動して既存のコード ファイルをプロジェクトに追加します // 6. 後ほどこのプロジェクトを再び開く場合、[ファイル] > [開く] > [プロジェクト] と移動して .sln ファイルを選択します