记录编号 |
327510 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2010冲刺十三]外星密码 |
最终得分 |
100 |
用户昵称 |
浮生随想 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.014 s |
提交时间 |
2016-10-22 08:47:20 |
内存使用 |
0.33 MiB |
显示代码纯文本
#include<cstdlib>
#include<cstdio>
#include<iostream>
#include<cstring>
#include<stack>
using namespace std;
stack<char>s1;
stack<int>s2;
stack<char>s3;
char s[20010];
int main(){
freopen("passworda.in","r",stdin);
freopen("passworda.out","w",stdout);
scanf(" %s",s+1);
int len=strlen(s+1);
for(int i=1;i<=len;i++){
if(isdigit(s[i])){
int x=0;
while(isdigit(s[i]))x=x*10+s[i]-'0',i++;
s2.push(x);
}
if(s[i]!=']'){
s3.push(s[i]);
}
if(s[i]==']'){
string xh,sc;
char k=s3.top();s3.pop();
while(k!='['){
xh+=k;
k=s3.top();s3.pop();
}
int x=s2.top();s2.pop();
//cout<<x<<endl;
while(x--)sc+=xh;
for(int i=sc.size()-1;i>=0;i--){
s3.push(sc[i]);
}
}
}
stack<char>ans;
while(!s3.empty()){
char k=s3.top();s3.pop();
ans.push(k);
}
while(!ans.empty()){
char k=ans.top();ans.pop();
printf("%c",k);
}
//getchar();getchar();
}