QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 256 MB 總分: 100 可 Hack ✓

#17535. Sushis russes

统计

Jin-woo est le meilleur joueur et gourmet du monde. Lorsqu'il apprend que Do-hyun, le patron de son groupe d'idoles préféré, a ouvert un restaurant appelé "Sushi russe sur tapis roulant", il s'y précipite immédiatement.

Le plat signature du restaurant est, bien entendu, le sushi russe sur tapis roulant. Lorsque vous commandez ce plat, $N$ sushis vous sont servis avec un défi : si vous réussissez, le repas est gratuit. L'objectif du défi est de manger $K$ sushis sans jamais changer d'expression faciale. Ce défi est difficile car certains sushis contiennent une grande quantité de wasabi épicé !

Le défi se déroule comme suit : tout d'abord, Do-hyun place $N$ sushis à intervalles réguliers sur un tapis roulant circulaire. Sous les yeux du participant, Do-hyun ajoute du wasabi dans certains sushis afin que leur position soit connue. Tous les sushis, y compris ceux au wasabi, ont exactement la même apparence et sont impossibles à distinguer.

Ensuite, le participant a les yeux bandés et Do-hyun fait tourner le tapis roulant de manière aléatoire. Lorsque le participant rouvre les yeux, le tapis roulant commence à tourner dans le sens des aiguilles d'une montre. À partir de ce moment, le participant doit manger chaque sushi dès qu'il se présente devant lui. En d'autres termes, le participant mangera des sushis consécutifs dans le sens inverse des aiguilles d'une montre, en commençant par le sushi qui se trouve devant lui au moment où il ouvre les yeux.

Pour donner une chance à plus de personnes, Do-hyun vend des coupons permettant de sauter des sushis. Le participant peut acheter autant de coupons qu'il le souhaite avant d'avoir les yeux bandés. Lorsqu'un participant utilise un coupon, il peut sauter un sushi sans le manger. Le sushi sauté est retiré du tapis roulant et Do-hyun indique s'il contenait du wasabi ou non.

Le participant échoue au défi s'il mange un sushi au wasabi et change d'expression, ou s'il saute trop de sushis et ne parvient pas à en manger $K$ au total.

Jin-woo souhaite relever le défi du sushi russe. Malheureusement, comme il ne supporte pas les plats épicés, il doit éviter les sushis au wasabi. Ne voulant pas ternir sa réputation de meilleur joueur et gourmet du monde, il souhaite acheter suffisamment de coupons pour garantir la réussite du défi, quelles que soient les circonstances.

La position des sushis au wasabi, observée par Jin-woo avant d'avoir les yeux bandés, est donnée. Quel est le nombre minimum de coupons que Jin-woo doit acheter pour réussir le défi à coup sûr, en utilisant la meilleure stratégie possible ?

Entrée

La première ligne contient le nombre de sushis $N$ et le nombre de sushis à manger $K$, séparés par un espace. $(1 \le K \le N \le 200\,000)$

La deuxième ligne contient une chaîne de caractères de longueur $N$ composée des lettres O et X. Le $i$-ième caractère indique si le $i$-ième sushi dans le sens inverse des aiguilles d'une montre est un sushi au wasabi. O représente un sushi au wasabi, et X représente un sushi sans wasabi.

Sortie

Affichez le nombre minimum de coupons que Jin-woo doit acheter pour garantir sa réussite au défi. S'il est impossible de garantir la réussite, quel que soit le nombre de coupons achetés, affichez -1.

Exemples

Entrée 1

6 2
OXXOXX

Sortie 1

3

Entrée 2

5 1
XXOXX

Sortie 2

-1

Entrée 3

4 4
XXXX

Sortie 3

0

Entrée 4

8 2
OXXOXXOX

Sortie 4

5

Entrée 5

8 1
XOXXOOXO

Sortie 5

6

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.