O cenário
Eu dirijo ao longo de uma estrada com meu carro e começa a chover. As gotas de chuva estão caindo na minha janela aleatoriamente e agora eu me pergunto: qual é a maior área molhada conectada?
A tarefa
Para facilitar, a janela é dividida em uma matriz de 10 * 10 quadrados. Seu trabalho é encontrar a maior área de gota d'água na janela.
Entrada
Existem duas entradas possíveis, você pode usar uma matriz bidimensional ou uma matriz unidimensional. Você pode escolher entre quaisquer entradas como stdin, etc ...
Exemplo:
// 2-dimensional:
[[0,1,0,0,0,0,1,0,0,0],
[0,1,1,0,0,0,0,1,1,0],
[0,1,1,0,0,0,0,1,0,0],
[0,1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,1,0],
[0,0,0,1,1,0,0,0,1,0],
[0,0,0,1,1,0,0,0,1,0],
[0,0,0,0,0,1,1,0,1,0],
[0,0,0,0,0,1,1,0,1,0],
[0,0,0,0,0,0,0,0,0,0]]
// 1-dimensional
[0,1,0,0,0,0,1,0,0,0,
0,1,1,0,0,0,0,1,1,0,
0,1,1,0,0,0,0,1,0,0,
0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,
0,0,0,1,1,0,0,0,1,0,
0,0,0,1,1,0,0,0,1,0,
0,0,0,0,0,1,1,0,1,0,
0,0,0,0,0,1,1,0,1,0,
0,0,0,0,0,0,0,0,0,0]
Resultado
Seu código deve especificar o tamanho da maior área conectada e as coordenadas xey das gotas d'água que pertencem a essa área no formato
"Tamanho: Coordenadas Z: (X1, Y1) (X2, Y2) .. "
Exemplo para a entrada anterior:
Size: 6 Coordinates: (1,0) (1,1) (2,1) (1,2) (2,2) (1,3)
A ordem das coordenadas não importa.
Regras
- Gotas d'água são conectadas, se elas se tocam ortogonalmente
- Conexões diagonais não contam
- Pode haver muitas áreas e seu código precisa encontrar a maior
- Um campo vazio é representado como "0" e um campo úmido como "1"
- Poste sua solução com uma breve explicação e a saída da entrada anterior
- O código mais curto nos próximos 7 dias vencerá
- Se houver duas áreas com o mesmo tamanho, você pode escolher uma
