== include(page="template/taskheader" task_id="desen2") ==
Poveste si cerinta...
Gigel a desenat pe o foaie de matematica un poligon ale carui laturi sunt asezate de-a lungul liniilor caroiajului foii. Niciuna dintre laturile poligonului nu se afla pe marginea foii de hartie.
Gigel a notat in fiecare patratel al foii de hartie cate dintre cele $4$ laturi ale sale se afla pe conturul poligonului.
h2. Cerinta
Cunoscand valorile scrise in patratelele foii de hartie, sa se reconstituie poligonul.
h2. Date de intrare
Fisierul de intrare $desen2.in$ ...
Fisierul de intrare $desen2.in$ contine pe prima linie doua numere naturale $N$ $M$, separate prin spatiu, reprezentand numarul de linii si respectiv numarul de coloane ale caroiajului de pe foaia de matematica. Pe fiecare dintre urmatoarele $N$ linii se afla cate $M$ numere din multimea { $0$, $1$, $2$, $3$, $4$ }, separate prin cate un spatiu, reprezentand valorile scrise in patratelele foii de matematica.
h2. Date de iesire
In fisierul de iesire $desen2.out$ ...
Fisierul de iesire $desen2.out$ va contine desenul reconstituit. In fisier se vor afla $N$ linii, fiecare linie continand exact $2M-1$ caractere care pot fi:
* $.$ (punct, caracterul cu codul ASCII 46)
* $|$ (bara verticala, caracterul cu codul ASCII 124)
* $_$ (liniuta de subliniere, caracterul cu codul ASCII 95).
Prima linie a fisierului de iesire ilustreaza aspectul primei linii de pe foaia de matematica (mai exact, laturile de jos ale patratelelor de pe prima linie), a doua linie din fisier aspectul celei de a doua linii de pe foaie (laturile de jos, precum si eventualele laturi verticale), etc. Fie $c{~1~}c{~2~}...c{~2M-1~}$ caracterele de pe o linie a fisierului de iesire. Intotdeauna $c{~1~}='.'$. Caracterul $c{~i~}$ ( $i$ impar, $i>2$ ) este liniuta de subliniere daca latura de jos a patratelului $(i+1)/2$ de pe foaie apartine poligonului si $'.'$ in caz contrar. Caracterul $c{~i~}$ ( $i$ par) este bara verticala daca latura din dreapta a patratelului $i/2$ a patratelului de pe foaie apartine poligonului, respectiv $'.'$ in caz contrar.
h2. Restrictii
* $... ≤ ... ≤ ...$
* $3 ≤ N, M ≤ 1000$
* Se garanteaza ca exista solutie pentru datele de test.
h2. Exemplu
table(example). |_. desen2.in |_. desen2.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
| 4 4
0 0 1 0
0 2 3 1
1 3 2 1
0 1 1 0
| ...._..
.._|.|.
.|_._|.
.......
|
h3. Explicatie
...
Desenul corespunzator
!problema/desen2?desen.jpg!
== include(page="template/taskfooter" task_id="desen2") ==