În această poveste este vorba despre o casă cu mai multe camere. O cameră are forma unui pătrat de latură . Dacă două camere au un perete comun, atunci se poate trece dintr-o cameră în alta. Casa nu are neapărat formă dreptunghiulară. O asemenea casă poate fi descrisă în povestea noastră în două moduri:
- prin matricea minimală: o matrice cu elemente şi în care există valori egale cu , ce corespund camerelor, iar prima linie, ultima linie, prima coloană şi ultima coloană au cel puţin un element egal cu .
- prin construcţie: un şir de perechi în care şi . Camerele vor fi numerotate de la 1 la . Perechea precizează poziţia camerei faţă de camera :
E
înseamnă la dreapta (est),N
deasupra (nord),V
la stânga (vest),S
dedesubt (sud). Observaţi că pentru prima cameră nu există nicio precizare!
De exemplu, casa de mai sus poate fi descrisă de şirul (1 E) (2 E) (2 S) (3 S)
, adică a doua cameră e “lipită” la est de prima cameră, următoarea (a treia) la est de camera , a patra la sud de camera , iar ultima la sud de camera .
Cerinţă:
- Se dă descrierea unei case prin construcţie şi se cere descrierea acesteia prin matricea minimală.
- Se dă descrierea unei case prin matricea minimală şi se cere descrierea acesteia prin construcţie.
Date de intrare
Fişierul casa.in
conţine:
- Pe prima linie un număr natural reprezentând cerinţa care trebuie rezolvată. Pentru toate testele de intrare, numărul poate avea valoarea sau .
- Dacă valoarea lui este atunci liniile următoare conţin descrierea unei case prin construcţie astfel: pe linia a doua un număr natural reprezentând numărul de camere ale casei, iar pe fiecare din următoarele linii câte două valori separate prin câte un spaţiu - un număr natural şi un caracter, cu semnificaţia de mai sus.
- Dacă valoarea lui este atunci liniile următoare conţin descrierea unei case prin matrice minimală astfel: pe linia a doua două numere naturale nenule reprezentând dimensiunile matricei, iar pe următoarele linii câte numere sau separate prin câte un spaţiu.
Date de ieșire
Dacă valoarea lui este atunci se va rezolva numai cerinţa 1. În acest caz fişierul casa.out
va conţine pe prima linie două numere naturale şi , separate prin câte un singur spaţiu reprezentând numărul de linii respectiv numărul de coloane ale matricei minimale, iar pe următoarele linii câte valori 0 sau 1 separate prin câte un singur spaţiu.
Dacă valoarea lui este atunci se va rezolva numai cerinţa 2. În acest caz fişierul casa.out
va conţine pe prima linie două numere naturale şi separate printr-un singur spaţiu. Nr reprezintă numărul de camere, iar poziţia camerei 1 (cel mai mic număr de ordine al unei coloane care conţine valoarea 1 în prima linie). Următoarele linii vor conţine fiecare câte două valori separate printr-un singur spaţiu, reprezentând descrierea unei case prin construcţie conform precizărilor din enunţ. Coloanele vor fi numerotate începând de la 1, iar dacă există mai multe soluţii va fi afişată cea mai mică în ordine lexicografică: perechea va fi afişată înaintea perechii dacă sau dacă şi (adică ).
Restricții și precizări
- Matricea minimală a unei case are maximum elemente.
Exemplul 1
casa.in
1
5
1 E
2 E
2 S
3 S
casa.out
2 3
1 1 1
0 1 1
Exemplul 2
casa.in
2
2 3
1 1 1
1 0 1
casa.out
5 1
1 E
1 S
2 E
4 S