casa

Time limit: 0.1s Memory limit: 4MB Input: casa.in Output: casa.out

În această poveste este vorba despre o casă cu mai multe camere. O cameră are forma unui pătrat de latură 11. 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 00 şi 11 în care există NN valori egale cu 11, ce corespund camerelor, iar prima linie, ultima linie, prima coloană şi ultima coloană au cel puţin un element egal cu 11.
  • prin construcţie: un şir de N1N-1 perechi (ai,bi) 1i<n(a_i, b_i) \ 1 \leq i < n în care ai{1,2,,i}a_i \in \{1,2, \dots,i\} şi bi{N,S,E,V}b_i \in \{N, S, E, V\}. Camerele vor fi numerotate de la 1 la nn. Perechea (ai,bi)(a_i, b_i) precizează poziţia camerei i+1i+1 faţă de camera aia_i: 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 22, a patra la sud de camera 22, iar ultima la sud de camera 33.

Cerinţă:

  1. Se dă descrierea unei case prin construcţie şi se cere descrierea acesteia prin matricea minimală.
  2. 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 pp reprezentând cerinţa care trebuie rezolvată. Pentru toate testele de intrare, numărul pp poate avea valoarea 11 sau 22.
  • Dacă valoarea lui pp este 11 atunci liniile următoare conţin descrierea unei case prin construcţie astfel: pe linia a doua un număr natural NN reprezentând numărul de camere ale casei, iar pe fiecare din următoarele N1N-1 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 pp este 22 atunci liniile următoare conţin descrierea unei case prin matrice minimală astfel: pe linia a doua două numere naturale nenule M,NM, N reprezentând dimensiunile matricei, iar pe următoarele MM linii câte NN numere 00 sau 11 separate prin câte un spaţiu.

Date de ieșire

Dacă valoarea lui pp este 11 atunci se va rezolva numai cerinţa 1. În acest caz fişierul casa.out va conţine pe prima linie două numere naturale MM şi NN, 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 MM linii câte NN valori 0 sau 1 separate prin câte un singur spaţiu.
Dacă valoarea lui pp este 22 atunci se va rezolva numai cerinţa 2. În acest caz fişierul casa.out va conţine pe prima linie două numere naturale NrNr şi CC separate printr-un singur spaţiu. Nr reprezintă numărul de camere, iar CC poziţia camerei 1 (cel mai mic număr de ordine al unei coloane care conţine valoarea 1 în prima linie). Următoarele Nr1Nr-1 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 (k,l)(k, l) va fi afişată înaintea perechii (k,l)(k', l') dacă k<kk < k' sau dacă k=kk = k' şi l<ll < l' (adică E<N<S<VE < N < S < V).

Restricții și precizări

  • Matricea minimală a unei case are maximum 100 000100\ 000 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

Log in or sign up to be able to send submissions!