El problema
Un escenario del fin del mundo se describe mediante tres números en una sola línea, n, m, y p. Siguiendo esa línea hay nlíneas con mvalores por línea. Cada valor representa las unidades totales de agua que puede contener cada celda.
Las siguientes plíneas describen el clima para los próximos pdías. 1 unidad de lluvia cae en una sola celda cada día. Si la cantidad de agua en una celda excede la cantidad que puede contener, esa celda se inunda. Si varias celdas adyacentes están a plena capacidad, se tratan como una celda que comparte vecinos comunes (piense en Buscaminas cuando hace clic en un grupo de espacios en blanco).
- Una sola celda media tiene 4 vecinos.
- Dos celdas intermedias adyacentes de capacidad total se tratan como una celda que tiene 6 vecinos
- Una celda de esquina individual tiene 2 vecinos.
- Una celda de pared simple tiene 3 vecinos.
Cuando una celda se inunda, ocurre un evento de inundación. Todo el exceso de agua se distribuye uniformemente a sus vecinos. Si eso hace que uno o más vecinos se inunden, entonces ocurre otro evento de inundación. Esto continúa hasta que el agua se haya asentado o la ciudad se haya inundado por completo.
Entrada de ejemplo
7 5 3
3 2 3 4 5
2 2 0 3 4
1 1 2 3 3
4 1 2 2 2
4 1 1 2 2
4 4 1 2 2
4 4 2 2 2
0 0
1 2
4 3
0 0significa que llovió en la fila 1, col 11 2significa que llovió en la fila 2, col 3 (que puede contener cero agua e inmediatamente se inunda)
Después de pdías de lluvia, si la ciudad está completamente inundada, produzca Sink . De lo contrario, salida Swim .
Salida de ejemplo
Nadar
Supuestos
- La entrada puede proporcionarse a través de stdin, leerse desde "city.txt" o aceptarse como argumento. Los tres están permitidos para no invalidar las respuestas ya publicadas.
- Las capacidades hídricas serán enteros no negativos.
Más de 40 equipos de estudiantes universitarios de pregrado (de A&M, UT, LSU, Rice, Baylor, etc.) que compiten en un concurso de programación con una variedad de idiomas disponibles no pudieron resolver este problema en 5 horas. Debido a eso, no puedo evitar mencionar que hay una trampa en este rompecabezas que hace que la solución sea trivial. El código más corto sigue ganando, porque estoy seguro de que el código más corto también resolverá el rompecabezas.
0.25unidades a cada celda adyacente (suponiendo una sola celda inundada media)?
nlíneas demvalores o al revés? Su ejemplo no coincide con la especificación escrita.