paranteze

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

Considerăm şiruri formate din paranteze de două tipuri: paranteze rotunde şi paranteze drepte. Parantezele se codifică în felul următor: paranteză rotundă deschisă cu 00, paranteză rotundă închisă cu 11, paranteză dreaptă deschisă cu 22, paranteză dreaptă închisă cu 33. Spre deosebire de convenţia uzuală din matematică, aici pot exista şi paranteze rotunde incluse în paranteze drepte şi paranteze drepte incluse în paranteze rotunde. Nu putem asocia unei paranteze rotunde deschise o paranteză dreaptă închisă sau viceversa.

Cerință

Să se decidă dacă un astfel de şir este corect construit, în sensul că putem asocia corect două câte două parantezele de fiecare tip

Date de intrare

Fişierul de intrare paranteze.in conţine pe prima linie numărul nn (numărul de şiruri ale testului).

Apoi pe fiecare din liniile 2,3,,n+12, 3, \dots, n+1 se află numerele L c1 c2  cLL \ c_1 \ c_2 \ \dots \ c_L, numărul natural LL reprezintă lungimea unui şir de paranteze codificat conform enunţului.

Valorile c1,c2,,cLc_1, c_2, \dots, c_L reprezintă codurile respective. Toate numerele sunt despărţite prin câte un spaţiu.

Date de ieșire

În fişierului de ieșire paranteze.out se va scrie nn linii. Pe câte o linie va fi scris câte un mesaj. Pe fiecare linie se va scrie unul din mesajele Da, respectiv Nu, reprezentând rezultatele verificării corectitudinii şirurilor. Ordinea lor corespunde ordinii şirurilor din fişierul de intrare

Restricții și precizări

  • 1n101 \leq n \leq 10;
  • Fiecare valoare LL îndeplineşte condiţia: 1L5001 \leq L \leq 500.

Exemplu

paranteze.in

8
6 0 2 3 1 0 1
6 2 0 1 0 1 3
4 0 2 1 3
6 2 0 0 3 1 1
6 2 2 0 1 1 3
6 2 0 0 1 3 0
10 2 2 0 1 0 1 3 3 0 1
10 0 0 0 1 1 1 0 2 3 1

paranteze.out

Da
Da
Nu
Nu
Nu
Nu
Da
Da

Explicație

Primul şir din test corespunde şirului de paranteze ([])()

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