Salas de ordenadores P87948


Statement
 

pdf   zip

html

En el curso de programación que se organiza en la Facultat de Matemàtiques i Estadística de la UPC se tiene pensado distribuir a los alumnos de forma que cada uno tenga un ordenador para el sólo. Como todos sabemos, a cada persona se le ha asignado un grupo en función de sus conocimientos de programación. Estos grupos son reciben como nombres letras del abecedario (y curiosamente, los que más saben tienen letras posteriores en el alfabeto). Todo parece perfecto, pero los ordenadores fallan, algunas clases se vuelven hornos mientras que otras parecen frigoríficos y, obviamente, luego faltan ordenadores (o sobran alumnos, según cómo se mire). Para solucionar el problema, se te pide que hagas un programa que genere todas las posibles maneras de distribuir a los alumnos.

Entrada

La entrada contendrá un número indeterminado de casos. Cada caso consta de tres números N, M, G, el número de filas de mesas, el número de ordenadores en cada fila y el número de grupos de alumnos respectivamente. En las siguientes N líneas habrá M carácteres en cada una, o bien un punto indicando que el ordenador funciona correctamente o bien una X indicando que no funciona. Los grupos son las letras mayúsculas de la A en adelante.

Salida

Para cada caso, imprimir todas las posibles distribuciones de personas de los diferentes grupos en la sala en orden lexicográfico. Dejad una línea en blanco después de cada distribución. Tras cada caso, imprimid una línea con 10 guiones. Se te garantiza que el número de distribuciones será lo suficiente pequeño para que se puedan generar y que no habrá más grupos que letras en el alfabeto (y siempre habrá al menos un grupo).

Public test cases
  • Input

    2 2 2
    .X
    X.
    

    Output

    AX
    XA
    
    AX
    XB
    
    BX
    XA
    
    BX
    XB
    
    ----------
    
  • Information
    Author
    Alex Alvarez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++