POJ1068-Parencodings
http://poj.org/problem?id=1068
#include<iostream> #include<string> #include<stack> using namespace std; int main(void) { int n,m,k,p,leftpa; stack<int>s; string::iterator it; cin>>n; while(n--) { leftpa=0; cin>>m; string str; while(m--) { cin>>p; for(k=0;k<p-leftpa;k++) str+='('; str+=')'; leftpa=p; } for(it=str.begin();it!=str.end();it++) { if(*it=='(') s.push(1); else { p=s.top(); s.pop(); cout<<p<<" "; if(!s.empty()) s.top()+=p; } } cout<<endl; } return 0; }