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;
}
posted @ 2012-10-05 15:30  Yogurt Shen  阅读(163)  评论(0编辑  收藏  举报