Теплові карти
Розглянемо прямокутну кімнату, на стелі якої у нас теплова камера, спрямована вниз. У приміщенні є деяка кількість джерел інтенсивності тепла1-9
, температура фону 0
. Тепло розсіюється від кожного джерела, опускаючись на одну одиницю за (недіагональний) крок. Наприклад, 20x10
кімната
...........1........
....................
...8................
..5...............2.
....................
.1..................
................1...
.................65.
....................
............2.......
містить 9 джерел тепла, а температурний градієнт, показаний тепловою камерою, є
34565432100100000000
45676543210000000000
56787654321000000110
45676543210000001221
34565432100000012321
23454321000000123432
12343210000001234543
01232100000012345654
00121000000011234543
00010000000121123432
У графічній формі це може виглядати так:
З градієнта ми можемо зробити висновок про положення та інтенсивності деяких джерел тепла, але не всіх. Наприклад, з усіх 9
s завжди можна зробити висновок, оскільки вони мають максимальну температуру, і це може бути 8
в цьому випадку, оскільки це створює локальний максимум у градієнті. 2
Поблизу права межа також може бути виведено, навіть якщо він не знаходиться на локальному максимумі, так як він не має іншого , 2
як сусіда. З 5
іншого боку, не можна зробити висновок, оскільки їх тепло може бути вироблено і більш інтенсивними джерелами поблизу них. Як 0
відомо, вони не містять джерел тепла, але всі інші плитки можуть потенційно містити його. Позначимо непевні плитки дефісами-
, певні джерела тепла за відповідними цифрами та певний порожній простір за періодами .
:
---------..1........
----------..........
---8-------......--.
----------......--2-
---------......-----
--------......------
-------......-------
.-----......-----6--
..---.......--------
...-.......-2-------
Вашим завданням має бути виготовлення цього висновку з градієнта температури.
Правила
Вам вводять рядок у вигляді рядка, обмеженого або новими рядками, або вертикальними трубами |
, залежно від того, що зручніше, і вихід має бути однакової форми. У вході та / або виході може бути кінцевий роздільник, але попередній. Розмір вводу може змінюватися, але його ширина і висота завжди не менше 4
. Прийнятні як функції, так і повні програми. Виграє найнижчий байт, а стандартні лазівки заборонені.
Додаткові випробувальні випадки
Вхід:
898778765432100
787667654321100
677656543211210
678765432112321
567654321123210
що виглядає так у графічному вигляді:
Вихід:
-9---8-------..
-------------..
--------------.
--8---------3--
-----------3--.
Вхід:
7898
8787
7676
6565
Вихід:
--9-
8---
----
----
Вхід:
00001
00000
00000
10000
Вихід:
....1
.....
.....
1....