比赛 20121030 评测结果 AAAAAWWAWA
题目名称 外星密码 最终得分 70
用户昵称 feng 运行时间 0.007 s
代码语言 C++ 内存使用 3.30 MiB
提交时间 2012-10-30 20:40:13
显示代码纯文本
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<string>
using namespace std;
int n;
int f[30000];
int stack[10000];
string str;
void recursive(int l,int r){
	int i=l;
	int j=0;
	while (i<r){
		while (str[i]-'A'<26 && str[i]-'A'>=0){
			//printf("%c",str[i]);
			cout<<str[i];
			i++;
		}
		if (str[i]=='['){
			j=i;
			int multi=0;
			while (str[++i]-'0'<10 && str[i]-'0'>=0)
				multi=multi*10+str[i]-'0';
			for (;multi>0;multi--)
				recursive(i,f[j]-1);
			i=f[j]+1;
		}
	}
}
int main()
{
	freopen("passworda.in","r",stdin);
	freopen("passworda.out","w",stdout);
	cin>>str;
	int top=0;
	int tmp=str.size();
	for (int i=0;i<str.size();i++){
		if (str[i]=='[')
			stack[++top]=i;
		if (str[i]==']')
			f[stack[top--]]=i;
	}
	recursive(0,str.size()-1);
	return 0;
}