首页 > 其他 > 详细

poj1068

时间:2016-01-07 01:09:09      阅读:225      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#include<cstring>
int num[25],result[25];
char s[150];
int main()
{
	using namespace std;
	int n,m;
	cin >> n;
	while(n--){
		cin >> m;
		for(int i=0;i<m;++i)
			cin >> num[i];
		int ans=0;
		int t=0;
		for(int i=0;i<m;++i){
			if(ans!=num[i]){
				int c=num[i]-ans;for(int j=t;j<t+c;++j)	s[j]=‘(‘;
				t+=c;s[t]=‘)‘;++t;ans=num[i];
			}
			else{
				s[t]=‘)‘;++t;
			}
		}
		int tot=0;ans=0;
		for(int i=0;i<t;++i){
			if(s[i]==‘)‘){
				++tot;
				int you=1;
				for(int j=i-1;j>=0;j--){
					if(s[j]==‘)‘)	++you,++tot;
					else if(s[j]==‘(‘)	--you;
					if(!you)	break;
				}
				result[ans++]=tot;
				tot=0;
			}
		}
		for(int i=0;i<ans-1;++i)
			cout << result[i] << " ";
			cout << result[ans-1] << endl;
	}
}

  

poj1068

原文:http://www.cnblogs.com/sasuke-/p/5107841.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!