#P3194. Equidivisions
Equidivisions
Description
Una equidivisión de un arreglo cuadrado de n × n square array of cells is a partition of the n2 celdas en el arreglo en exactamente n conjuntos, cada uno con n celdas contiguas. Dos celdas son contiguas cuando tienen un lado común.
Una buena equidivisión está compuesta de regiones contiguas. Las figuras muestran una buena y una mala equidivisión para un cuadrado de 5 × 5:
Observe que en el segundo ejemplo las celdas etiquetadas con 4
describen tres regiones no contiguas y las celdas etiquetadas con 5
describen dos regiones no contiguas. Usted debe escribir un programa que evalue si una equidivisión de celdas en un arreglo cuadrado es buena o no.
Input
Se entiende que una celda en un arreglo cuadrado de n × n está denotada por un par (i, j), con 1 ≤ i, j ≤ n. El archivo de entrada contiene varios casos de prueba. Cada caso de prueba comienza con una línea indicando n, 0 < n < 100, el lado del arreglo cuadrado a ser particionado. Después, hay n − 1 lines, líneas, cada una correspondiente a una partición de celdas del cuadrado, con algunos números enteros no negativos. Los enteros consecutivos en una línea están separados por un simple espacio en blanco. Una línea de la forma
a1a2a3a4…
significa que las celdas denotadas con los pares (a1, a2), (a3, a4), … pertenecen a una de las áreas dentro de la partición. La última área dentro de la partición está definida por aquellas celdas no mencionadas en las n − 1 líneas dadas. Si un caso comienza con n = 0 significa que no hay más casos a analizar.
Output
Para cada caso de prueba se debe imprimir good
si la equidivisión es buena, en caso contrario, wrong
debe imprimirse. Las respuestas de diferentes casos deben preservarse en el orden de la entrada.
2
1 2 2 1
5
1 1 1 2 1 3 3 2 2 2
2 1 4 2 4 1 5 1 3 1
4 5 5 2 5 3 5 5 5 4
2 5 3 4 3 5 4 3 4 4
5
1 1 1 2 1 3 3 2 2 2
2 1 3 1 4 1 5 1 4 2
4 5 5 2 5 3 5 5 5 4
2 4 1 4 3 5 4 3 4 4
0
wrong
good
wrong
Source
XX Maratón Nacional de Programación ACIS / REDIS, Colombia
Translator
Steinersp