Este desafio é inspirada por uma imagem que muitas vezes anda no Facebook que se parece com isso . Exceto que nosso quadrado base será mais parecido com este:
┌─┬───┬─┐
├─┼─┬─┼─┤
├─┼─┴─┼─┤
├─┼─┬─┼─┤
└─┴─┴─┴─┘
O quadrado é composto de n x m
1x1 quadrado, você deve contar quantos sub-quadrados (1x1, 2x2, 3x3, 4x4, 5x5 etc.) cabem dentro desse quadrado. Quadrados podem estar faltando algumas linhas de grade (como no exemplo acima) ou estar completos como no exemplo abaixo. O que significa que uma quebra matemática não é possível (tanto quanto eu sei).
Entradas:
- A quantidade de linhas (
n
) de entrada para construir o quadrado; - Um quadrado formado pelos seguintes caracteres:
─
┐
┌
└
┴
┘
┬
├
┤
┼
|
através dasn
linhas de entrada.
Resultado:
- A quantidade de quadrados de qualquer tamanho que pode caber no quadrado de entrada (queremos apenas um único número aqui, não um número para cada tamanho).
Critério de vitória:
A menor resposta (número de bytes) vence.
Casos de teste:
Dentro:
5
┌─┬─┬─┬─┐
├─┼─┼─┼─┤
├─┼─┼─┼─┤
├─┼─┼─┼─┤
└─┴─┴─┴─┘
Fora: 30
Dentro:
3
┌─┬─┐
├─┼─┤
└─┴─┘
Fora: 5
Dentro:
5
┌─┬─┐
├─┴─┤
├───┤
├─┬─┤
└─┴─┘
Fora: 7
Dentro:
4
┌─┬─┬─┬─┬─┬─┐
├─┼─┼─┼─┼─┼─┤
├─┼─┼─┼─┼─┼─┤
└─┴─┴─┴─┴─┴─┘
Fora: 32
Dentro:
2
┌─┐
└─┘
Fora: 1
Dentro:
4
┌─┬─┬─┬─┬─┬─┐
├─┴─┼─┼─┼─┴─┤
├─┬─┼─┼─┼─┬─┤
└─┴─┴─┴─┴─┴─┘
Fora: 22
m*(m+1)*(3*n-m+1)/6
para umm
porn
rectângulo comn >= m
(dimensões compensado por uma vez que a entrada de fala de pontos, em vez dos próprios quadrados)Respostas:
JavaScript (ES6), 292 bytes
306 325Edit Eu fiz a contagem de bytes totalmente errada,
corrigida agora thx http://bytesizematters.com/correta pela última vez, espero que thx Cᴏɴᴏʀ O'Bʀɪᴇɴ veja https://goo.gl/LSHC1U (e 1 byte a menos usando um literal nova linha em vez de '\ n')Mais do que eu esperava (provavelmente mais alguns bytes podem ser removidos)
Todos os quadrados possíveis são verificados e contados.
A
r
função mapeia cada caractere para um bitmap que possuiUm quadrado de qualquer tamanho deve ter
Teste
fonte