Fişierul intrare/ieşire:verlab.in, verlab.outSursăONIS 2015, Runda 3
AutorVlad ManeaAdăugată devlad.maneaVlad Manea vlad.manea
Timp execuţie pe test0.05 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Verlab

În această problemă vrem să verificăm dacă un caroiaj este sau nu labirint. Un labirint este un caroiaj cu o serie de proprietăţi suplimentare:

  • celulele adiacente pot avea maxim un perete despărţitor, definit pentru doar una din celule,
  • fiecare celulă de pe margine e despărţită de exterior prin perete,
  • între oricare două celule din caroiaj există exact un drum simplu format din paşi pe orizontală şi verticală între celule adiacente şi nedespărţite.

Fiecare celulă este descrisă de un număr natural pe 4 biţi, unde biţii adevăraţi descriu, în ordine, existenţa unui perete pe direcţiile sus, dreapta, jos, stânga. De exemplu, numărul 5 = 0 × 23 + 1 × 22 + 0 × 21 + 1 × 20 descrie o celulă cu pereţi doar în dreapta şi stânga.

Date de intrare

Primul număr din fişierul de intrare verlab.in este numărul de teste T. Apoi pentru fiecare test, se dau numărul de linii R şi numărul de coloane C; acestea sunt urmate de R × C numere între 0 şi 15, reprezentând celulele pe rânduri şi coloane. Numerele sunt date: de sus în jos şi, pentru un rând fixat, de la stânga la dreapta. Numerele sunt precedate, separate şi urmate de oricâte caractere albe.

Date de ieşire

În fişierul de ieşire verlab.out se găsesc T numere, câte un singur număr pentru fiecare test, în ordinea testelor: 1 pentru un caroiaj care este labirint, sau 0 pentru un caroiaj care nu este labirint. Numărul este urmat de caracterul sfârşit de linie.

Restricţii

  • 1 <= R, C, T <= 100

Exemplu

verlab.inverlab.out
2
2 2
13 12
3 6
1 1
14
1
0

Explicaţie

În primul test, caroiajul are 4 celule, distribuite pe 2 rânduri şi 2 coloane. Celula din stânga sus cu valoarea 13 are trei pereţi: în sus, dreapta şi stânga. Celula din dreapta sus cu valoarea 12 are doi pereţi: în sus şi în dreapta. Celula din dreapta jos cu valoarea 6 are doi pereţi: în dreapta şi în jos. Celula din stânga jos cu valoarea 3 are doi pereţi: în jos şi în stânga. De observat cum peretele drept al celulei din stânga sus o desparte pe aceasta de celula din dreapta sus. Caroiajul respectă proprietăţile de labirint. În al doilea test, singurei celule din caroiaj îi lipseşte unul din pereţii cu exteriorul, ceea ce face caroiajul să nu fie un labirint.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content