Este reto se inspira en una imagen que a menudo vaga en Facebook que se parece a esto . Excepto que nuestro cuadrado base se verá más así:
┌─┬───┬─┐
├─┼─┬─┼─┤
├─┼─┴─┼─┤
├─┼─┬─┼─┤
└─┴─┴─┴─┘
El cuadrado está hecho de n x m
1x1 cuadrado, tienes que contar cuántos subcuadrados (1x1, 2x2, 3x3, 4x4, 5x5, etc.) pueden caber dentro de ese cuadrado. A los cuadrados les pueden faltar algunas líneas de cuadrícula (como en el ejemplo anterior) o pueden estar completos como en el ejemplo a continuación. Lo que significa que no es posible un desglose matemático (que yo sepa).
Entradas:
- La cantidad de líneas (
n
) de entrada para construir el cuadrado; - Un cuadrado formado por los siguientes caracteres: a
─
┐
┌
└
┴
┘
┬
├
┤
┼
|
través den
líneas de entrada.
Salida:
- La cantidad de cuadrados de cualquier tamaño que pueden caber dentro del cuadrado de entrada (solo queremos un número aquí, no un número para cada tamaño).
Criterio ganador:
La respuesta más pequeña (número de bytes) gana.
Casos de prueba:
En:
5
┌─┬─┬─┬─┐
├─┼─┼─┼─┤
├─┼─┼─┼─┤
├─┼─┼─┼─┤
└─┴─┴─┴─┘
Fuera: 30
En:
3
┌─┬─┐
├─┼─┤
└─┴─┘
Fuera: 5
En:
5
┌─┬─┐
├─┴─┤
├───┤
├─┬─┤
└─┴─┘
Fuera: 7
En:
4
┌─┬─┬─┬─┬─┬─┐
├─┼─┼─┼─┼─┼─┤
├─┼─┼─┼─┼─┼─┤
└─┴─┴─┴─┴─┴─┘
Fuera: 32
En:
2
┌─┐
└─┘
Fuera: 1
En:
4
┌─┬─┬─┬─┬─┬─┐
├─┴─┼─┼─┼─┴─┤
├─┬─┼─┼─┼─┬─┤
└─┴─┴─┴─┴─┴─┘
Fuera: 22
m*(m+1)*(3*n-m+1)/6
para unam
porn
rectángulo conn >= m
(dimensiones compensadas por uno desde la entrada habla de puntos en lugar de los propios cuadrados)Respuestas:
JavaScript (ES6), 292 bytes
306 325Editar Hice el recuento de bytes totalmente incorrecto,
corregido ahora gracias a http://bytesizematters.com/correcto por última vez espero que Cᴏɴᴏʀ O'Bʀɪᴇɴ vea https://goo.gl/LSHC1U (y 1 byte menos usando un literal nueva línea en lugar de '\ n')Más tiempo de lo que esperaba (probablemente se pueden eliminar algunos bytes más)
Todos los cuadrados posibles se verifican y cuentan.
La
r
función asigna cada carácter a un mapa de bits que tieneUn cuadrado de cualquier tamaño debe tener
Prueba
fuente