AtCoder ABC161 E - Yutori

AtCoder ABC161 E - Yutori_第1张图片
AtCoder ABC161 E - Yutori_第2张图片

题意:

n n n 天要求工作 k k k 天,且工作一天要休息 c c c 天。按顺序输出必须要工作的天数下标。

贪心。正序遍历贪心求最小位置记录在数组 a a a 中,倒序遍历贪心求最大位置记录在数组 b b b 中。

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

你可能感兴趣的:(CodeForces)