Ifri y la string.
Ifri recibió una string de longitud
de parte de Torvic como regalo de cumpleaños. La string
consta de tres tipos de caracteres, J, O e I. Para cada número entero positivo
, llamaremos a la string que consta de
Js,
Os y
Is en este orden
"String
de nivel
". Por ejemplo,
es una string
de nivel 2.
A Ifri le gusta una string de nivel
, así que quiere hacer una a partir de la string
usando las siguientes tres operaciones cualquier número de veces en orden arbitrario:
Operación
: Ifri borra el primer caracter de
.
Operación
: Ifri borra el último caracter de
.
Operación
: Ifri borra un caracter de
que no es ni el primero ni el último.
Como la Operación lleva mucho tiempo, Ifri quiere hacer una String
de nivel
con el menor número de Operaciones
posible.
Es por eso que te pide a ti, su mejor amigo programador, que escribas un programa que dada una string
de longitud
y un entero positivo
, imprima el menor número de Operaciones
necesarias para hacer una String
de nivel
a partir de
.
Si es imposible hacer una String de nivel
con las operaciones dadas, imprime
en su lugar.
Subtareas
1. (10 puntos) .
2. (30 puntos) .
3. (60 puntos) Sin restricciones adicionales.
Entrada
La primera línea de la entrada contiene dos enteros:
y
.
La segunda línea contiene la string , la cual consiste solo de letras J, O e I.
Salida
La salida debe contener el menor número de Operaciones requeridas para hacer una String
de nivel
a partir de
.
Si es imposible, imprime .
Ejemplo de Entrada 1
10 2
OJIJOIOIIJ
Ejemplo de Salida 1
2
Puedes hacer una String de nivel
a partir de la string
mediante las siguientes operaciones:
- Utilizas la Operación
y
se convierte en
.
- Utilizas la Operación
y
se convierte en
.
- Utilizas la Operación
para eliminar el segundo carácter y
se convierte en
.
- Utilizas la Operación
para eliminar el cuarto carácter y
se convierte en
.
Es imposible hacer una String de nivel
con el uso de la Operación 3 menos de dos veces, por lo que debes imprimir 2.
Ejemplo de Entrada 2
9 3
JJJOOOIII
Ejemplo de Salida 2
0
No necesitas usar ninguna operación.
Ejemplo de Entrada 3
9 1
IIIOOOJJJ
Ejemplo de Salida 3
-1
Es imposible hacer una String de nivel
a partir de
.
Comments