To wyzwanie jest inspirowany obrazem, który często przemierza na Facebooku, który wygląda jak ten . Tyle że nasz kwadrat podstawowy będzie wyglądał bardziej tak:
┌─┬───┬─┐
├─┼─┬─┼─┤
├─┼─┴─┼─┤
├─┼─┬─┼─┤
└─┴─┴─┴─┘
Kwadrat składa się z n x m
kwadratu 1x1, musisz policzyć, ile kwadratów (1x1, 2x2, 3x3, 4x4, 5x5 itp.) Mieści się w tym kwadracie. Kwadraty mogą nie zawierać niektórych linii siatki (jak w powyższym przykładzie) lub być kompletne jak w poniższym przykładzie. Co oznacza, że matematyczny podział nie jest możliwy (o ile mi wiadomo).
Wejścia:
- Ilość linii (
n
) danych wejściowych do zbudowania kwadratu; - Kwadrat złożony z następujących znaków: w
─
┐
┌
└
┴
┘
┬
├
┤
┼
|
poprzekn
linii wprowadzania.
Wynik:
- Liczba kwadratów o dowolnym rozmiarze, które mogą zmieścić się w kwadracie wejściowym (chcemy tutaj tylko jednej liczby, a nie liczby dla każdego rozmiaru).
Kryterium wygranej:
Najmniejsza odpowiedź (liczba bajtów) wygrywa.
Przypadki testowe:
W:
5
┌─┬─┬─┬─┐
├─┼─┼─┼─┤
├─┼─┼─┼─┤
├─┼─┼─┼─┤
└─┴─┴─┴─┘
Out: 30
W:
3
┌─┬─┐
├─┼─┤
└─┴─┘
Out: 5
W:
5
┌─┬─┐
├─┴─┤
├───┤
├─┬─┤
└─┴─┘
Out: 7
W:
4
┌─┬─┬─┬─┬─┬─┐
├─┼─┼─┼─┼─┼─┤
├─┼─┼─┼─┼─┼─┤
└─┴─┴─┴─┴─┴─┘
Out: 32
W:
2
┌─┐
└─┘
Out: 1
W:
4
┌─┬─┬─┬─┬─┬─┐
├─┴─┼─┼─┼─┴─┤
├─┬─┼─┼─┼─┬─┤
└─┴─┴─┴─┴─┴─┘
Out: 22
m*(m+1)*(3*n-m+1)/6
ANm
przezn
prostokąt zn >= m
(wymiary przesunięte o jeden od wejścia mówi punktów zamiast samych kwadraty)Odpowiedzi:
JavaScript (ES6), 292 bajtów
306 325Edytuj Zrobiłem, że liczba bajtów była całkowicie niepoprawna,
poprawiona teraz dzięki http://bytesizematters.com/poprawiona po raz ostatni Mam nadzieję, że dzięki Cᴏɴᴏʀ O'Bʀɪᴇɴ zobacz https://goo.gl/LSHC1U (i 1 bajt mniej używając literału znak nowej linii zamiast „\ n”)Dłuższy niż się spodziewałem (prawdopodobnie można wygolić jeszcze kilka bajtów)
Wszystkie możliwe kwadraty są sprawdzane i liczone.
r
Funkcja map każdy znak do bitmapy koniecznościKwadrat o dowolnym rozmiarze musi mieć
Test
źródło