![ContractedBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1
/*
mo ni shui guo
*/
2 #include < iostream >
3 #include < cstring >
4 #include < algorithm >
5 #include < string >
6 #include < cstdio >
7 using namespace std;
8 char s[ 1005 ],ss[ 1005 ];
9 int flag[ 1005 ];
10 int main()
11 {
12 int t;
13 cin >> t;
14 getchar();
15 while (t -- )
16 {
17 int i,j;
18 gets(s);
19 for (i = 0 ,j = 0 ;i < strlen(s);i ++ )
20 {
21 if (s[i] != ' ' )
22 ss[j ++ ] = s[i];
23 }
24 memset(flag, 0 , sizeof (flag));
25 for ( int i = 1 ;i < j;i ++ )
26 {
27 if (ss[i] == ' ) ' )
28 for ( int k = i - 1 ;k >= 0 ;k -- )
29 {
30 if (ss[k] == ' ( ' && ! flag[k])
31 {
32 if (ss[k - 1 ] != ' - ' )
33 {
34 flag[k] = flag[i] = 1 ;
35 }
36 else
37 {
38 flag[k] = flag[i] = 2 ;
39 int a = 0 ;
40 for ( int kk = k + 1 ;kk < i;kk ++ )
41 {
42 if (flag[kk] != 1 )
43 a ++ ;
44 }
45 if (a == 1 ) flag[k] = flag[i] = 1 ;
46 }
47 break ;
48 }
49 }
50 }
51 for (i = 0 ;i < j;i ++ )
52 {
53 if (flag[i] == 1 ) continue ;
54 cout << ss[i];
55 }
56 cout << endl;
57 }
58 return 0 ;
59 }
2 #include < iostream >
3 #include < cstring >
4 #include < algorithm >
5 #include < string >
6 #include < cstdio >
7 using namespace std;
8 char s[ 1005 ],ss[ 1005 ];
9 int flag[ 1005 ];
10 int main()
11 {
12 int t;
13 cin >> t;
14 getchar();
15 while (t -- )
16 {
17 int i,j;
18 gets(s);
19 for (i = 0 ,j = 0 ;i < strlen(s);i ++ )
20 {
21 if (s[i] != ' ' )
22 ss[j ++ ] = s[i];
23 }
24 memset(flag, 0 , sizeof (flag));
25 for ( int i = 1 ;i < j;i ++ )
26 {
27 if (ss[i] == ' ) ' )
28 for ( int k = i - 1 ;k >= 0 ;k -- )
29 {
30 if (ss[k] == ' ( ' && ! flag[k])
31 {
32 if (ss[k - 1 ] != ' - ' )
33 {
34 flag[k] = flag[i] = 1 ;
35 }
36 else
37 {
38 flag[k] = flag[i] = 2 ;
39 int a = 0 ;
40 for ( int kk = k + 1 ;kk < i;kk ++ )
41 {
42 if (flag[kk] != 1 )
43 a ++ ;
44 }
45 if (a == 1 ) flag[k] = flag[i] = 1 ;
46 }
47 break ;
48 }
49 }
50 }
51 for (i = 0 ;i < j;i ++ )
52 {
53 if (flag[i] == 1 ) continue ;
54 cout << ss[i];
55 }
56 cout << endl;
57 }
58 return 0 ;
59 }