[G1] Nawiasy
Języki:
c
cpp
Limit czasu: 3.0 s
Limit pamięci: 10 MB
Limit rozmiaru rozwiązania: 100 kB
Na wejściu dane jest wyrażenie W składające się z nawiasów () oraz []. Poprawność wyrażeń tego typu określona jest za pomocą następujących reguł:
- wyrażenie puste jest poprawne,
- jeśli A oraz B są poprawne, AB jest poprawne,
- jeśłi A jest poprawne, (A) oraz [A] są poprawne.
Napisz program, który przeczyta ze standardowego ciąg napisów reprezentujących opisane powyżej wyrażenia a następnie zweryfikuje ich poprawność. Możesz założyć, że przetwarzane wyrażenia nie będą dłuższe niż 128 znaków.
Wejście
Pierwszy wiersz wejścia zawiera liczbę naturalną N. Kolejnych N wierszy zawiera napisy reprezentujące wyrażenia składające się z nawiasów () oraz [].
Wyjście
Dla każdego poprawnego wyrażenia program powinien wydrukować na standardowym wyjściu TAK, natomiast dla każdego niepoprawnego wyrażenia - NIE.
Przykładowe wejście
3 ([]) (([()]))) ([()[]()])()
Przykładowe wyjście
TAK NIE TAK