Il problema
Uno scenario apocalittico è descritta da tre numeri su una singola linea, n, m, e p. Seguendo quella linea ci sono nlinee con mvalori per linea. Ogni valore rappresenta le unità totali di acqua che ogni cella può contenere.
Le seguenti prighe descrivono il tempo per i prossimi pgiorni. 1 unità di pioggia cade su una singola cella ogni giorno. Se la quantità di acqua in una cella supera la quantità che può contenere, quella cella si allaga. Se più celle adiacenti sono a piena capacità, vengono trattate come una cella che condivide vicini comuni (pensa a Minesweeper quando fai clic su un gruppo di spazi).
- Una singola cella centrale ha 4 vicini
- Due celle medie adiacenti a piena capacità vengono trattate come una cella con 6 vicini
- Una cella ad angolo singolo ha 2 vicini
- Una cella a parete singola ha 3 vicini
Quando una cella si allaga, si verifica un evento di inondazione. Tutta l'acqua in eccesso viene distribuita uniformemente ai vicini. Se ciò causa l'allagamento di uno o più vicini, si verifica un altro evento di alluvione. Questo continua fino a quando l'acqua non si è stabilizzata o la città non è completamente allagata.
Esempio di input
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 che ha piovuto sulla riga 1, col 11 2significa che ha piovuto sulla fila 2, col 3 (che può contenere zero acqua e inondazioni immediatamente!)
Dopo pgiorni di pioggia, se la città è completamente allagata, esce Lavello . Altrimenti, crea Swim .
Esempio di output
Nuotare
ipotesi
- L'input può essere fornito tramite stdin, letto da "city.txt" o accettato come argomento. Sono consentiti tutti e tre per non invalidare le risposte già pubblicate.
- Le capacità dell'acqua saranno numeri interi non negativi.
Oltre 40 team di studenti universitari (provenienti da A&M, UT, LSU, Rice, Baylor, ecc.) Che hanno partecipato a un concorso di programmazione con una varietà di lingue disponibili non sono stati in grado di risolvere questo problema in 5 ore. Per questo motivo, non posso fare a meno di menzionare che c'è un problema in questo puzzle che rende la soluzione banale. Il codice più corto vince ancora, perché sono così sicuro che anche il codice più breve risolverà il puzzle.
0.25unità per ogni cella adiacente (presupponendo una singola cella allagata centrale)?
nlinee dimvalori o viceversa? Il tuo esempio non corrisponde alla specifica scritta.