| 比赛 | 
    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;
}