ABC332C 题解

· · 题解

因为字符串没用 \texttt 被打回。

思路:

如果 S_i=\texttt 1,那么尽量穿普通衣服,直到普通衣服不够穿了再买标志衣服,并记录需要买的标志衣服的件数,更新最大值。然后到了 S_i=\texttt0 的时候,把购买衣服件数清空,但最大值不清空,并把普通衣服件数还原。最后输出最大值。

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll N = 1e7;

ll n, m, at = 0, maxn = 0, a, b;
string s;

int main() {

    cin >> n >> m >> s;
    b = m;
    for (ll i = 0; i < n; ++i) {
        if (s[i] == '0') {
            b = m;
            at = 0;
        }
        else if (s[i] == '1') {
            if (b == 0) {
                ++at;
                maxn = max(at, maxn);
            }
            else b--;
        }
        else if (s[i] == '2') {
            ++at;
            maxn = max(at, maxn);
        }
    }
    cout << maxn;
    return 0;

}