CLS OPEN "input.txt" FOR INPUT AS #1 OPEN "output.txt" FOR OUTPUT AS #2 INPUT #1, x$ n = LEN(x$) REDIM aa(4) nb$ = "" ne$ = "" sk1 = 0 sk2 = 0 sr1 = 0 sr2 = 0 t1 = 0: t2 = 0: t3 = 0: t4 = 0 y$ = "" FOR i = n TO 1 STEP -1 y$ = y$ + MID$(x$, i, 1) NEXT i FOR i = 1 TO n l = INSTR(i, x$, "[") IF l = 0 THEN GOTO 20 IF i = 1 THEN sk1 = sk1 + 1: aa(1) = l: i = l ELSE sk1 = sk1 + 1: i = l NEXT i 20 FOR i = 1 TO n l = INSTR(i, y$, "]") IF l = 0 THEN GOTO 30 IF i = 1 THEN sk2 = sk2 + 1: aa(2) = l: i = l ELSE sk2 = sk2 + 1: i = l NEXT i 30 FOR i = 1 TO n l = INSTR(i, x$, "(") IF l = 0 THEN GOTO 40 IF i = 1 THEN sr1 = sr1 + 1: aa(3) = l: i = l ELSE sr1 = sr1 + 1: i = l NEXT i 40 FOR i = 1 TO n l = INSTR(i, y$, ")") IF l = 0 THEN GOTO 50 IF i = 1 THEN sr2 = sr2 + 1: aa(4) = l: i = l ELSE sr2 = sr2 + 1: i = l NEXT i 50 IF aa(2) = 0 THEN GOTO 60 IF (aa(2) < aa(4) OR aa(4) = 0) THEN GOSUB 100 ELSE GOSUB 200 60 IF aa(4) = 0 THEN GOTO 70 IF (aa(2) > aa(4) OR aa(2) = 0) THEN GOSUB 200 ELSE GOSUB 100 70 IF aa(1) = 0 THEN GOTO 80 IF (aa(1) > aa(3) OR aa(3) = 0) THEN GOSUB 300 ELSE GOSUB 400 80 IF aa(3) = 0 THEN GOTO 90 IF (aa(3) < aa(1) OR aa(1) = 0) THEN GOSUB 400 ELSE GOSUB 300 90 i = 1 WHILE MID$(nb$, i, 1) = "[" AND i < LEN(nb$) i = i + 1 t1 = t1 + 1 WEND i = 1 WHILE MID$(nb$, i, 1) = "(" AND i < LEN(nb$) i = i + 1 t2 = t2 + 1 WEND i = LEN(ne$) WHILE MID$(ne$, i, 1) = "]" AND i > 1 i = i - 1 t3 = t3 + 1 WEND i = LEN(ne$) WHILE MID$(ne$, i, 1) = ")" AND i > 1 i = i - 1 t4 = t4 + 1 WEND 91 IF t1 <> 0 AND t3 <> 0 THEN GOSUB 520 IF t2 <> 0 AND t4 <> 0 THEN GOSUB 540 PRINT #2, nb$; x$; ne$ CLOSE SYSTEM 100 FOR i = 1 TO sk2 nb$ = nb$ + "[" NEXT i RETURN 200 FOR i = 1 TO sr2 nb$ = nb$ + "(" NEXT i RETURN 300 FOR i = 1 TO sk1 ne$ = ne$ + "]" NEXT i RETURN 400 FOR i = 1 TO sr1 ne$ = ne$ + ")" NEXT i RETURN 520 IF t1 > t3 THEN nb$ = MID$(nb$, t3, LEN(nb$) - t3): ne$ = LEFT$(nb$, LEN(nb$) - t3) ELSE nb$ = MID$(nb$, t3, LEN(nb$) - t1): ne$ = LEFT$(ne$, LEN(ne$) - t1) RETURN 540 IF t2 > t4 THEN nb$ = MID$(nb$, t4, LEN(nb$) - t4): ne$ = LEFT$(nb$, LEN(nb$) - t4) ELSE nb$ = MID$(nb$, t2, LEN(nb$) - t2): ne$ = LEFT$(ne$, LEN(ne$) - t2) RETURN