Organizando vacas.
Se le proporciona una cadena de bits de longitud ,
. En una sola operación, puede invertir un rango
si se cumplen las siguientes condiciones:
- El tamaño del rango es par.
- La primera mitad del rango consta de un carácter
ó
, y la segunda mitad contiene el carácter opuesto.
o
.
o
.
Encuentre el número mínimo de operaciones para mover todos los al principio, o indique que es imposible. Si es posible, muestre también el número de secuencias de operaciones que alcanzan este mínimo, módulo
.
Entrada
La primera línea contiene , el número de pruebas independientes. Cada prueba se especifica en el siguiente formato:
- La cadena de bits se proporciona en formato comprimido. La primera línea contiene
, el número de secuencias en la cadena, y el primer carácter de la cadena
ó
.
- La siguiente línea contiene
enteros separados por espacios
, que representan las longitudes de los bloques consecutivos máximos de caracteres iguales en
. Se garantiza que
.
Además, se garantiza que la suma de en todas las pruebas no supera
.
Salida
Para cada caso de prueba, imprimir el número mínimo de operaciones necesarias para mover todos los al principio o
si es imposible, así como el número de secuencias de operaciones que alcanzan este mínimo módulo
.
Restricciones
Puntuación
| Entrada(s) | Restricciones adicionales |
|---|---|
| 3 | |
| 4 | |
| 5-8 | |
| 9-12 | |
| 13-16 | Sin restricciones adicionales |
Ejemplo #1 de Entrada
9
2 0
1 1
2 1
1 1
2 1
2 1
2 0
1 2
5 0
1 1 1 2 1
3 0
1 2 1
8 0
1 1 2 1 1 2 1 1
6 0
3 3 1 2 2 1
7 0
5 1 1 3 2 1 1
Ejemplo #1 de Salida
1 1
0 1
0 1
-1 0
2 1
-1 0
4 7
3 1
4 1
Esta es la secuencia de dos operaciones para el quinto caso de prueba: .
Ejemplo #2 de Entrada
5
2 1
1 1
4 1
1 1 1 1
6 1
1 1 1 1 1 1
8 1
1 1 1 1 1 1 1 1
10 1
1 1 1 1 1 1 1 1 1 1
Ejemplo #2 de Salida
0 1
1 1
2 1
3 3
4 9
En todos estos casos de prueba, el número mínimo de operaciones es igual a .
Aquí están las tres secuencias posibles de tres operaciones para el cuarto caso de prueba:
(1)
10101010
-> 11001010
-> 11001100
-> 11110000
(2)
10101010
-> 10110010
-> 10001110
-> 11110000
(3)
10101010
-> 10101100
-> 11001100
-> 11110000
Comments