Heatmaps
Rozważmy prostokątny pokój, na którego suficie mamy kamerę termiczną skierowaną w dół. W pomieszczeniu znajduje się pewna liczba źródeł ciepła o intensywności 1-9
, przy czym temperatura tła jest 0
. Ciepło rozprasza się z każdego źródła, spadając o jedną jednostkę na (nie przekątny) stopień. Na przykład 20x10
pokój
...........1........
....................
...8................
..5...............2.
....................
.1..................
................1...
.................65.
....................
............2.......
zawiera 9 źródeł ciepła, a gradient temperatury pokazywany przez kamerę termiczną wynosi
34565432100100000000
45676543210000000000
56787654321000000110
45676543210000001221
34565432100000012321
23454321000000123432
12343210000001234543
01232100000012345654
00121000000011234543
00010000000121123432
W formie graficznej może to wyglądać następująco:
Na podstawie gradientu możemy wywnioskować pozycje i natężenia niektórych źródeł ciepła, ale nie wszystkich. Na przykład, 9
zawsze można wywnioskować wszystkie s, ponieważ mają one maksymalną temperaturę, podobnie jak 8
w tym przypadku, ponieważ daje lokalne maksimum w gradiencie. 2
Blisko prawej krawędzi można również wywnioskować, mimo że nie jest na lokalnym maksimum, ponieważ nie ma innego 2
jak sąsiada. Z 5
drugiej strony nie są one wywnioskowane, ponieważ ich ciepło równie dobrze mogłoby być wytwarzane przez bardziej intensywne źródła w ich pobliżu. Do 0
s są znane zawierają żadnych źródeł ciepła, ale wszystkie inne płytki mogą potencjalnie zawierać jeden. Oznaczmy niepewne kafelki łącznikami-
, niektóre źródła ciepła według odpowiednich cyfr i pewne puste miejsce według okresów .
:
---------..1........
----------..........
---8-------......--.
----------......--2-
---------......-----
--------......------
-------......-------
.-----......-----6--
..---.......--------
...-.......-2-------
Twoim zadaniem będzie wytworzenie tego wywnioskowanego wzoru z gradientu temperatury.
Zasady
Dostajesz dane wejściowe jako ciąg rozdzielony znakami nowej linii lub pionowymi rurami |
, w zależności od tego, który jest wygodniejszy, a dane wyjściowe powinny mieć taką samą formę. Na wejściu i / lub wyjściu może znajdować się ogranicznik końcowy, ale żaden poprzedni. Rozmiar danych wejściowych może się różnić, ale jego szerokość i wysokość są zawsze co najmniej 4
. Zarówno funkcje, jak i pełne programy są dopuszczalne. Wygrywa najmniej bajtów, a standardowe luki są zabronione.
Dodatkowe przypadki testowe
Wkład:
898778765432100
787667654321100
677656543211210
678765432112321
567654321123210
który wygląda tak w formie graficznej:
Wydajność:
-9---8-------..
-------------..
--------------.
--8---------3--
-----------3--.
Wkład:
7898
8787
7676
6565
Wydajność:
--9-
8---
----
----
Wkład:
00001
00000
00000
10000
Wydajność:
....1
.....
.....
1....