ACM - Universidad Autonoma de Puebla



Problema B - Expresiones


Entrada: expresion.in
Salida: estándar
Tiempo límite: 3 segundos

Descripción

Rafael ha faltado a sus clases de Programación. Su profesor les ha dejado como tarea hacer un programa que verifique si una cadena compuesta de delimitadores (corchetes, paréntesis y llaves) está bien formada, es decir que se abren y cierran en forma apropiada. Por ejemplo las cadena “{()}”, “{()({})[]}” y “({}[()])” son correctas, mientras que “(()”, “{(]}”, “{}([)]” no lo son. Dado que Rafael no quiere reprobar la materia, te ha pedido que le hagas su programa.

Entrada

En la primera línea de entrada habrá un entero n (0 < n ≤ 100) que representa en número de casos a procesar. Cada caso de entrada consiste de una sola línea que contiene una cadena S (0 < |S| < 350) que consiste únicamente de delimitadores (corchetes, paréntesis y llaves).

Salida

Por cada caso de entrada debes imprimir una línea con el mensaje YES si la cadena está bien formada, en caso contrario imprime NO.

Ejemplo de entrada

Ejemplo de salida

4
{()([])}
{([(()({}{{{{{{[]}}}}}}))])}
(())[{{}}]]
(()))

YES
YES
NO
NO


Regresar