QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 2048 MB 總分: 100 难度: [顯示] 可 Hack ✓

#18199. Nuit blanche 2

统计

Little Cyan Fish possède une rangée de $n$ boules. Chaque boule est soit cyan, soit blanche. La rangée est décrite par une chaîne $s$ de longueur $n$, où C désigne une boule cyan et W désigne une boule blanche.

Lors d'une opération, il choisit une boule cyan dans la rangée actuelle. Supposons que cette boule soit à la position $i$ dans la rangée actuelle. Alors, toutes les boules dont la position diffère de $i$ d'au plus $k$ sont supprimées, y compris la boule cyan choisie elle-même. Après la suppression, les parties restantes à gauche et à droite sont concaténées.

Par exemple, lorsque $k = 1$, une opération possible est

problem_18199_1.png

où la boule avec la bordure épaisse est choisie et les boules à l'intérieur de la boîte rouge sont supprimées.

Trouvez le nombre minimum d'opérations nécessaires pour supprimer toute la rangée. Si c'est impossible, indiquez-le.

Entrée

Il y a plusieurs cas de test. La première ligne de l'entrée contient un entier unique $T$ ($1 \le T$), indiquant le nombre de cas de test.

Pour chaque cas de test, la première ligne contient deux entiers $n$ et $k$ ($1 \le k \le n \le 10^6$). La deuxième ligne contient une chaîne $s$ de longueur $n$, composée uniquement des caractères C et W.

Il est garanti que la somme de $n$ sur tous les cas de test ne dépasse pas $10^6$.

Sortie

Pour chaque cas de test, s'il est impossible de supprimer toute la rangée, affichez une seule ligne avec un entier unique $-1$. Sinon, affichez une seule ligne contenant un entier unique, indiquant le nombre minimum d'opérations nécessaires pour supprimer toute la rangée.

Exemples

Entrée 1

3
1 1
C
5 2
WWCWW
4 1
WWWW

Sortie 1

1
1
-1

Remarque

Dans le premier cas de test, Little Cyan Fish choisit la seule boule présente.

Dans le deuxième cas de test, il choisit la boule cyan du milieu ; comme $k = 2$, toute la rangée est supprimée en une seule opération.

Dans le troisième cas de test, il n'y a pas de boule cyan, donc aucune opération ne peut être effectuée.

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.