Heatmaps
Stellen Sie sich einen rechteckigen Raum vor, an dessen Decke eine Wärmebildkamera nach unten zeigt. In dem Raum gibt es eine Anzahl von Wärmequellen mit einer Intensität 1-9
, wobei die Hintergrundtemperatur ist 0
. Die Wärme wird von jeder Quelle abgegeben und fällt pro (nicht diagonaler) Stufe um eine Einheit ab. Zum Beispiel das 20x10
Zimmer
...........1........
....................
...8................
..5...............2.
....................
.1..................
................1...
.................65.
....................
............2.......
enthält 9 Wärmequellen und der von der Wärmekamera angezeigte Temperaturgradient ist
34565432100100000000
45676543210000000000
56787654321000000110
45676543210000001221
34565432100000012321
23454321000000123432
12343210000001234543
01232100000012345654
00121000000011234543
00010000000121123432
In grafischer Form könnte dies so aussehen:
Aus dem Gradienten können wir die Positionen und Intensitäten einiger, aber nicht aller Wärmequellen ableiten. Zum Beispiel 9
kann immer auf alle s geschlossen werden, da sie die maximale Temperatur haben, und 8
in diesem Fall auch, da sie ein lokales Maximum im Gradienten erzeugen. Der 2
nahe der rechten Grenze kann ebenfalls abgeleitet werden, auch wenn er kein lokales Maximum aufweist, da er keinen anderen 2
Nachbarn hat. Die 5
s hingegen werden nicht abgeleitet, da ihre Wärme genauso gut von den intensiveren Quellen in ihrer Nähe erzeugt werden kann. Es 0
ist bekannt, dass die s keine Wärmequellen enthalten, aber alle anderen Kacheln können möglicherweise eine enthalten. Bezeichnen wir die unsicheren Kacheln mit Bindestrichen-
, bestimmte Wärmequellen durch die entsprechenden Ziffern und bestimmte Leerstellen durch Zeiträume .
:
---------..1........
----------..........
---8-------......--.
----------......--2-
---------......-----
--------......------
-------......-------
.-----......-----6--
..---.......--------
...-.......-2-------
Ihre Aufgabe soll es sein, dieses abgeleitete Muster aus dem Temperaturgradienten zu erzeugen.
Regeln
Sie erhalten die Eingabe als Zeichenfolge, die entweder durch Zeilenumbrüche oder vertikale Pipes begrenzt wird |
, je nachdem, was bequemer ist, und die Ausgabe muss dieselbe Form haben. Möglicherweise befindet sich in der Eingabe und / oder Ausgabe ein nachgestelltes Trennzeichen, jedoch kein vorangestelltes. Die Größe der Eingabe kann variieren, aber die Breite und Höhe sind immer mindestens 4
. Beide Funktionen und vollständige Programme sind akzeptabel. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind verboten.
Zusätzliche Testfälle
Eingang:
898778765432100
787667654321100
677656543211210
678765432112321
567654321123210
Das sieht in grafischer Form so aus:
Ausgabe:
-9---8-------..
-------------..
--------------.
--8---------3--
-----------3--.
Eingang:
7898
8787
7676
6565
Ausgabe:
--9-
8---
----
----
Eingang:
00001
00000
00000
10000
Ausgabe:
....1
.....
.....
1....