比赛 |
清明时节雨纷纷,今天天气很晴朗 |
评测结果 |
ATAAATTATA |
题目名称 |
外星密码 |
最终得分 |
60 |
用户昵称 |
皓芷 |
运行时间 |
4.003 s |
代码语言 |
C++ |
内存使用 |
0.31 MiB |
提交时间 |
2017-04-07 19:12:59 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<stack>
using namespace std;
stack<char>c,ans;
string a;
int l,r;
void innt(int l,int r,int k)
{
int j=k;
stack<char>b,d;
for(int i=l;i<r;i++)
{
if(a[i]<='9'&&a[i]>='0')
{
if(a[i+1]<='9'&&a[i+1]>='0'){j*=(a[i]-'0')*10+(a[i+1]-'0');i+=2;}
else {j*=(a[i]-'0');i++;}
}
if(a[i]=='['){innt(i+1,a.find(']'),j);i=a.find(']')+1;}
if(a[i]>=65&&a[i]<=90){b.push(a[i]);c.push(a[i]);}
}
for(int i=1;i<j;i++)
{
while(!b.empty())
{
d.push(b.top());
b.pop();
}
while(!d.empty())
{
c.push(d.top());
b.push(d.top());
d.pop();
}
}
}
int main()
{
freopen("passworda.in","r",stdin);
freopen("passworda.out","w",stdout);
cin>>a;
l=0;
r=a.size();
innt(l,r,1);
while(!c.empty())
{
ans.push(c.top());
c.pop();
}
while(!ans.empty())
{
cout<<ans.top();
ans.pop();
}
return 0;
}