PKU 1690 (Your)((Term)((Project)))
http://poj.org/problem?id=1690
余分なカッコを取り去る。
http://sharif.edu/~acmicpc/acmicpc99/index78.html
WAになって、自分ではおかしなケースが作り出せなかったで、ここからテストデータを持ってきてデバッグしてしまいました。
string in; int pos; bool expr(){ bool ret=true; if(in[pos]=='('){ int cpos=pos; ++pos; ret&=expr(); in[cpos]=' '; in[pos]=' '; } ++pos; while(pos<in.size() && in[pos]!=')'){ ret=false; bool bm=false; if(in[pos]=='-')bm=true; ++pos; if(in[pos]=='('){ int cpos=pos; ++pos; if(expr() || !bm){ in[cpos]=' '; in[pos]=' '; } } ++pos; } return ret; } main(){ int t; cin>>t; cin.ignore(); while(t--){ string temp; getline(cin,temp); in=""; rep(i,SZ(temp))if(temp[i]!=' ')in+=temp[i]; pos=0; expr(); rep(i,SZ(in))if(in[i]!=' ')cout<<in[i]; cout<<endl; } }