题意:
给 天要求工作 天,且工作一天要休息 天。按顺序输出必须要工作的天数下标。
贪心。正序遍历贪心求最小位置记录在数组 中,倒序遍历贪心求最大位置记录在数组 中。
AC代码:
const int N = 2e5 + 5;
int a[N], b[N];
int n, k, c;
int pos;
string s;
int main()
{
sddd(n, k, c);
cin >> s;
rep(i, 0, n - 1)
{
if (s[i] == 'o')
{
a[pos++] = i;
i += c;
}
}
pos = k - 1;
for (int i = n - 1; i >= 0 && pos >= 0; i--)
{
if (s[i] == 'o')
{
b[pos--] = i;
i -= c;
}
}
rep(i, 0, k - 1)
{
if (a[i] == b[i])
pd(a[i] + 1);
}
return 0;
}