AT_abc332_c 题解

因为字符串没用 \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;
    
}

posted @ 2023-12-11 19:13  FurippuWRY  阅读(18)  评论(0)    收藏  举报