0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000111111000000000000000000011111111111111100000000000000000
0000000000000100001000000111111000000011111111111111100000000010000000
0000000000000100001000000111111000000000000000000000011000000000000000
0000000000000111111000000111111000000000000000000000011000000000000000
0000000000000000000000000000111111000000000000000000000000000000000000
0000000000000000000000000000111111000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
Você recebe uma matriz bidimensional de bytes do tamanho mx n. É garantido que todos os bytes sejam 1 ou 0. Encontre o número de retângulos representados por 1s quando visualizados em 2d, como mostrado acima.
Somente retângulos totalmente preenchidos são considerados para a contagem.
Os retângulos devem ser cercados por zeros, a menos que estejam na borda (os retângulos que tocam na diagonal dos zeros são válidos (veja o exemplo)).
Por exemplo, na matriz acima, existem 5 retângulos válidos.
Você pode usar qualquer idioma.
1
Eu acho que a melhor maneira de dizer isso é dizer: retângulos devem ser cercados por
—
zeros
Feito. Obrigado por redigir em um inglês melhor.
—
microbian
Que tal
—
Cruncher
1100\n1100\n0011\n0011
?
Eu acho que foi por isso que escrevi 'adjacente / sobreposto'. Estes são 2 retângulos válidos da minha intenção inicial. Mas a condição 'circundante' os está restringindo agora. Você tem uma maneira melhor de explicar isso
—
Microbian
Mesmo em adjacentes, é ambíguo se diagonal significa ou não adjacente. A mesma ambigüidade ou não meios cercado, cercado nos cantos ou lados apenas
—
Cruncher