Fase prèvia
Exercici
2
El cinema
Un cinema té un conjunt de n files de butaques amb m butaques cada fila, és a dir, té n·m butaques en total. Al cinema vénen grups de persones (tots ells de m persones o menys). Volem que totes les persones d’un mateix grup s'asseguin en la mateixa fila i de forma consecutiva. Si sabem amb anterioritat el nombre total de grups i el nombre de persones de cada grup, construïu un programa que pugui determinar la forma de distribuir aquestes persones en el cinema.
Veiem un exemple: El cinema té 5 files i 4 columnes:

Imaginem que vénen 8 grups de 3, 2, 4, 1, 3, 2, 3, i 1 persona. La forma de distribuir-los podria ser:

Podria ser que sigui impossible fer l’assignació encara que el nombre total de persones sigui inferior al nombre total de seients, per exemple, en el cinema de l'exemple anterior seria impossible acomodar sis grups de 3 persones, encara que el cinema tingui 20 places i els sis grups de 3 persones suposen només 18 persones.
El fitxer d'entrada s'anomenarà cine.in i estarà format pels següents nombres enters:
n: nombre de files del cinema.
m: nombre de columnes del cinema.
k: nombre de grups.
g1: nombre de persones del grup 1.
g2: nombre de persones del grup 2.
... ...
gk: nombre de persones del grup k.
El màxim nombre de files o de columnes serà de 20 per cadascuna de les dues dades. El màxim nombre de grups serà de 400.
El fitxer de sortida s'anomenarà cine.out i estarà format per un conjunt de 2k nombres corresponent al nombre de fila i nombre de columna de la primera persona de cada grup. Se suposa que la resta de persones del grup s’asseuran a la mateixa fila i a la dreta del primer.
En cas que sigui impossible l’assignació, el fitxer de sortida tindrà únicament el número 0.
Exemple:
|
fitxer d’entrada: |
fitxer de sortida: |
|
5 4 8 3 2 4 1 3 2 3 1 |
1 1 2 1 3 1 1 4 4 1 2 3 5 1 4 4
|
Anomeneu al fitxer font cinexx.___ , i al fitxer executable cinexx.exe on xx representa el codi del concursant i l'extensió del fitxer font dependrà del llenguatge utilitzat.