QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 2048 MB Puntuación total: 100 Dificultad: [mostrar] Hackeable ✓

#18199. Белая ночь 2

Estadísticas

У Маленькой Голубой Рыбки есть ряд из $n$ шаров. Каждый шар либо голубой, либо белый. Ряд описывается строкой $s$ длины $n$, где $C$ обозначает голубой шар, а $W$ — белый шар.

За одну операцию он выбирает голубой шар в текущем ряду. Предположим, что этот шар находится на позиции $i$ в текущем ряду. Тогда все шары, чьи позиции отличаются от $i$ не более чем на $k$, удаляются, включая сам выбранный голубой шар. После удаления оставшиеся левая и правая части соединяются.

Например, при $k = 1$ одна из возможных операций выглядит так:

problem_18199_1.png

где выбран шар с толстой границей, а шары внутри красной рамки удаляются.

Найдите минимальное количество операций, необходимых для удаления всего ряда. Если это невозможно, выведите соответствующий ответ.

Входные данные

Входные данные содержат несколько тестовых случаев. Первая строка содержит целое число $T$ ($1 \le T$), указывающее количество тестовых случаев.

Для каждого тестового случая первая строка содержит два целых числа $n$ и $k$ ($1 \le k \le n \le 10^6$). Вторая строка содержит строку $s$ длины $n$, состоящую только из символов $C$ и $W$.

Гарантируется, что сумма $n$ по всем тестовым случаям не превышает $10^6$.

Выходные данные

Для каждого тестового случая, если удалить весь ряд невозможно, выведите одну строку с числом $-1$. В противном случае выведите одну строку, содержащую минимальное количество операций, необходимых для удаления всего ряда.

Примеры

Примеры 1

3
1 1
C
5 2
WWCWW
4 1
WWWW

Выходные данные 1

1
1
-1

Примечание

В первом примере Маленькая Голубая Рыбка выбирает единственный шар.

Во втором примере он выбирает средний голубой шар; так как $k = 2$, весь ряд удаляется за одну операцию.

В третьем примере нет голубых шаров, поэтому никакую операцию выполнить нельзя.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.