poj 1068: Parencodings

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	int m,n;
	int a[25];
	cin>>m;
	while(m--)
	{
		memset(a,0,sizeof(a));
		cin>>n;
		for(int i=1;i<=n;i++)
			cin>>a[i];
		string c;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=a[i]-a[i-1];j++)
				c += '(';
			c += ')';
		}
		for(int i=0;i<=c.length();i++)
		{
			if(c[i] == ')')
			{
				int s = 0;
				for(int j=i-1;j>=0;j--)
				{
					if(c[j] == '#')
					{
						s++;
					}
					if(c[j] == '(')
					{
						s++;
						cout<<s<<" ";
						c[j] = '#';
						break;
					}
				}
			}
		}
		cout<<endl;
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章