O problema
Um cenário do fim do mundo está descrito por três números em uma única linha, n
, m
, e p
. A seguir a essa linha estão as n
linhas com m
valores por linha. Cada valor representa o total de unidades de água que cada célula pode conter.
As p
linhas a seguir descrevem o clima para os próximos p
dias. 1 unidade de chuva cai em uma única célula por dia. Se a quantidade de água em uma célula exceder a quantidade que ela pode reter, ela inundará. Se várias células adjacentes estiverem em plena capacidade, elas serão tratadas como uma célula que compartilha vizinhos comuns (pense no Campo Minado quando você clicar em um grupo de espaços em branco).
- Uma única célula do meio tem 4 vizinhos
- Duas células do meio adjacentes, com capacidade total, são tratadas como uma célula que possui 6 vizinhos
- Uma célula de canto único tem 2 vizinhos
- Uma célula de parede única possui 3 vizinhos
Quando uma célula é inundada, ocorre um evento de inundação. Todo o excesso de água é distribuído igualmente aos seus vizinhos. Se isso fizer com que um ou mais vizinhos sejam inundados, outro evento de inundação ocorrerá. Isso continua até que a água se estabilize ou a cidade fique completamente inundada.
Exemplo de entrada
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 0
significa que choveu na linha 1, col 11 2
significa que choveu na linha 2, coluna 3 (que pode reter água zero e inundar imediatamente!)
Após p
dias de chuva, se a cidade estiver completamente inundada, produza Sink . Caso contrário, saída Swim .
Saída de exemplo
Nadar
Suposições
- A entrada pode ser fornecida através do stdin, lida em "city.txt" ou aceita como argumento. Todos os três são permitidos para não invalidar nenhuma resposta já publicada.
- As capacidades de água serão números inteiros não negativos.
Mais de 40 equipes de estudantes universitários de graduação (de A&M, UT, LSU, Rice, Baylor etc.) competindo em um concurso de programação com uma variedade de idiomas disponíveis não conseguiram resolver esse problema em 5 horas. Por causa disso, não posso deixar de mencionar que há um problema nesse quebra-cabeça que torna a solução trivial. O código mais curto ainda vence, porque tenho certeza de que o código mais curto também resolverá o quebra-cabeça.
0.25
unidades para cada célula adjacente (assumindo uma única célula inundada no meio)?
n
linhas dem
valores ou o contrário? Seu exemplo não corresponde à especificação escrita.