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