| 比赛 |
20251022赛前模拟1 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
解压缩 |
最终得分 |
100 |
| 用户昵称 |
梧叶已同秋雨去 |
运行时间 |
0.037 s |
| 代码语言 |
C++ |
内存使用 |
3.71 MiB |
| 提交时间 |
2025-10-22 11:19:07 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
char a[505];
int n=1,cnt,t[505];
int id[505];
void cu(int k,int l,int r){
while(k--){
for(int i=l;i<=r;i++){
if(a[i]>='A'&&a[i]<='Z'){
cout<<a[i];continue;
}
if(a[i]=='['){
int l;
int r=id[i];
int sum=0;i++;
while(a[i]>='0'&&a[i]<='9'){
sum*=10;
sum+=a[i]-'0';
i++;
}
l=i;
cu(sum,l,r-1);
i=r;
}
}
}
}
int main(){
freopen("extract.in","r",stdin);
freopen("extract.out","w",stdout);
string s;
cin>>s;
n=s.size();
for(int i=0;i<n;i++){
a[i+1]=s[i];
}
for(int i=1;i<=n;i++){
if(a[i]=='['){
cnt++;
t[cnt]=i;
}
if(a[i]==']'){
id[t[cnt]]=i;
cnt--;
}
}
for(int i=1;i<=n;i++){
if(a[i]>='A'&&a[i]<='Z'){
cout<<a[i];continue;
}
if(a[i]=='['){
int l;
int r=id[i];
int sum=0;i++;
while(a[i]>='0'&&a[i]<='9'){
sum*=10;
sum+=a[i]-'0';
i++;
}
l=i;
cu(sum,l,r-1);
i=r;
}
}
return 0;
}