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