Estructura de Datos y Algoritmos Día Dos: “Hermanos”

Anuncio
Estructura de Datos y Algoritmos
12-03-2010 5:00PM
Día Dos: “Hermanos”
En la tierra de ACM reinaba un gran rey obsesionado por el orden. El reinado tenía
forma rectangular, y estaba dividido en una cuadrícula de pequeños condados
rectangulares. Justo antes de morir, el rey distribuyó los condados entre sus hijos.
Sin embargo, el rey nunca había pensado en una posible riña entre sus hijos: el primer
heredero odiaba al segundo, pero no al resto; el segundo heredero odiaba al tercero
pero no al resto, y así sucesivamente… Por último, el último heredero odiaba al primer
heredero pero no al resto.
Tan pronto como el rey murió, la riña se convirtió en guerra. Los ataques sucedieron
entre pares de condados adyacentes (condados adyacentes son aquellos que comparten
un borde vertical u horizontal). Un condado x atacaba a un condado y si el dueño de x
odiaba al dueño de y. El condado atacado siempre era conquistado por el hermano
atacante. Por regla de honor todos los ataques ocurrían simultáneamente y un conjunto
de ataques eran llamados batallas. Luego de cierto número de batallas, los hijos
sobrevivientes hacían una tregua y nunca batallaban de nuevo.
Por ejemplo, si el rey tuviera tres hijos (0, 1 y 2), la figura debajo muestra que sucedería
en la primera batalla para cierta distribución de tierra:
Fuente: “ACM ICPC 2009 – Latin American Regionals” ۞ Traducido al español por Roberto Abreu
Usted fue contratado para ayudar a los historiadores de la ACM a determinar, conociendo el
número de herederos, la distribución de la tierra inicial y el número de batallas, cuál era la
distribución de la tierra después de todas las batallas.
Entrada
La entrada contiene múltiples casos de prueba. La primera línea de un caso de prueba contiene
cuatro enteros N,R,C y K, separados por espacios. N es el número de herederos (2 ≤ N ≤ 100), R y
C son las dimensiones del reinado (2 ≤ R, C ≤ 100), y K es el número de batallas (1 ≤ K ≤ 100).
Los herederos son identificados por enteros secuenciales iniciando en cero (0 es el primer
heredero, 1 el segundo heredero, N – 1 el último heredero). Cada una de las próximas R líneas
contiene C enteros Hr,c separados por espacios, representando la distribución inicial: Hr,c es el
dueño inicial del condado en la fila r y columna c (0 ≤ Hr,c ≤ N – 1).
El último caso de prueba es seguido de una línea que contiene cuatro ceros separados por
espacios.
Salida
Para cada caso de prueba, su programa debe imprimir R líneas con C caracteres cada una,
separados por espacios en el mismo formato que la entrada. Esto simboliza la distribución final
luego de todas las batallas.
Fuente: “ACM ICPC 2009 – Latin American Regionals” ۞ Traducido al español por Roberto Abreu
Descargar