Usualmente, estamos acostumados a ver expressões matemáticas. Uma expressão matemática é um arranjo de termos que seguem o seguinte padrão
operando operador operando
sendo o operador algum dos operadores matemáticos, por exemplo, +
, -
, *
e /
, e o operando um número ou outro termo do mesmo formato. Por exemplo,
A+B
e
(A+B)*C
são exemplos de expressões matemáticas.
Sabemos que nas expressões matemáticas, os operadores possuem uma ordem de prioridade. Não obstante, há formas de se alterar essa ordem de prioridade, usando-se chaves, colchetes e parênteses. Deste modo, as expressões que estiverem dentro desses modificadores serão avaliadas primeiro.
A regra de ouro é a seguinte: sempre que abrimos um parêntese, devemos fechá-lo depois. O mesmo vale para chaves e colchetes.
Sua tarefa é, dada uma expressão matemática, verificar se a expressão está corretamente parentizada, ou seja, se toda chave, colchete e parêntese abertos são fechados posteriormente.
A entrada é composta por uma única linha, contendo uma expressão matemática com, no máximo, 500 caracteres.
A saída é composta por uma única linha contendo “sim” se a expressão estiver corretamente parentizada, ou “nao” caso contrário.
A+B
sim
{X-Y+[Z*(A^2-C)/(A+B)}
nao
(A+B)/C
sim
{(Z-A]/(K+10)}+C
nao