|
|
@@ -28,7 +28,7 @@ main(int argc, char *argv[])
|
|
|
if ( argc == 1 ) {
|
|
|
char *cstr = raw_input;
|
|
|
|
|
|
-loop:
|
|
|
+loop_p1:
|
|
|
switch ( *(cstr++) ) {
|
|
|
case '\0':
|
|
|
goto exit_loop;
|
|
|
@@ -39,12 +39,31 @@ loop:
|
|
|
--res;
|
|
|
break;
|
|
|
}
|
|
|
- goto loop;
|
|
|
-exit_loop:
|
|
|
- ;
|
|
|
+ goto loop_p1;
|
|
|
} else {
|
|
|
+ size_t i = 0;
|
|
|
+ char *cstr = raw_input;
|
|
|
+
|
|
|
+loop_p2:
|
|
|
+ switch ( *(cstr + i) ) {
|
|
|
+ case '\0':
|
|
|
+ goto exit_loop;
|
|
|
+ case '(':
|
|
|
+ ++res;
|
|
|
+ break;
|
|
|
+ case ')':
|
|
|
+ --res;
|
|
|
+ if ( res < 0 ) {
|
|
|
+ res = ((long) i) + 1;
|
|
|
+ goto exit_loop;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ ++i;
|
|
|
+ goto loop_p2;
|
|
|
}
|
|
|
|
|
|
+exit_loop:
|
|
|
printf("Result: %ld\n", res);
|
|
|
|
|
|
free(raw_input);
|