思路
直接遍历一遍,把所有能加的战舰就加到数组里,结束时战舰数量$-a+1$就是答案。
代码
#include <iostream>
#include <vector>
using namespace std;
int n,a,b,k;
string s;
int main () {
cin >> n >> a >> b >> k >> s;
s = ' ' + s;
int cnt = 0;
vector <int> ans;
for (int i = 1;i <= n;i++) {
if (s[i] == '0') {
cnt++;
if (cnt == b) {
cnt = 0;
ans.push_back (i);
}
}
else cnt = 0;
}
cout << ans.size () - a + 1 << endl;
for (int i = 0;i < ans.size () - a + 1;i++) cout << ans[i] << ' ';
return 0;
}
妙啊!