54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
#include <stdio.h>
|
|
#define for_i(i, range, inner) \
|
|
{ \
|
|
int i; \
|
|
for (i = 0; i < range; i++) \
|
|
inner; \
|
|
}
|
|
#define putbool(x) (printf("%s\n", (x) ? "yes" : "no"))
|
|
#define bool int
|
|
#define true 1
|
|
#define false 0
|
|
|
|
int main() {
|
|
int n;
|
|
scanf("%d\n", &n);
|
|
for_i(i, n, {
|
|
char a[1000];
|
|
int p = -1;
|
|
char c;
|
|
bool flag = 1;
|
|
while ((c = getchar()) != '\n') {
|
|
if (!flag) {
|
|
continue;
|
|
}
|
|
switch (c) {
|
|
case '(':
|
|
case '[':
|
|
a[++p] = c;
|
|
break;
|
|
case ')':
|
|
case ']':
|
|
if (p < 0) {
|
|
putbool(false);
|
|
flag = 0;
|
|
break;
|
|
}
|
|
if (c == ')' && a[p] == '(' || c == ']' && a[p] == '[') {
|
|
p--;
|
|
} else {
|
|
putbool(false);
|
|
flag = 0;
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
if (flag) {
|
|
putbool(p < 0);
|
|
}
|
|
});
|
|
return 0;
|
|
} |