比赛 20121030 评测结果 AAAAAAAAAA
题目名称 外星密码 最终得分 100
用户昵称 TBK 运行时间 0.005 s
代码语言 C++ 内存使用 41.30 MiB
提交时间 2012-10-30 20:26:16
显示代码纯文本
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <set>
#include <queue>
#include <algorithm>
#define MAXN 0x7fffffff
using namespace std;
int a,b,c,d,r[10000000];
string s,stri;
void DFS(void)
{
	int i,j,k=0,l;
	string str;
	for (;a<s.length();a++)
	{
		if (s[a]>='A'&&s[a]<='Z') str+=s[a];
			else if (s[a]>='0'&&s[a]<='9') 
			{
				i=a;
				k=0;
				while (s[a]>='0'&&s[a]<='9') a++;
				for (j=i;j<a;j++) 
					k+=(s[j]-'0')*(int)pow(10.0,(double)(a-j-1));
				a--;
			}
				else if (s[a]=='[')
				{
					a++;
					DFS();
					str+=stri;
				}
					else if (s[a]==']') 
					{
						string st;
						st=str;
						for (l=0;l<k-1;l++) str+=st;
						k=0;
						stri="\0";
						stri=str;
						return ;
					}
	}
	if (a==s.length())
	{
		string st;
		st=str;
		for (l=0;l<k-1;l++) str+=st;
		k=0;
	}
	stri="\0";
	stri=str;
	
}
int main(void)
{
    freopen("passworda.in","r",stdin);
    freopen("passworda.out","w",stdout);
    cin>>s;
	DFS();
    cout<<stri;
    fclose(stdin);
    fclose(stdout);
    return 0;
}