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;
}

浙公网安备 33010602011771号