比赛 20251022赛前模拟1 评测结果 AAAAAAAAAA
题目名称 解压缩 最终得分 100
用户昵称 梦那边的美好ME 运行时间 0.029 s
代码语言 C++ 内存使用 3.99 MiB
提交时间 2025-10-22 10:26:04
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define ll long long

string s;
string ans[10010];
ll cnt,a[10010];

int main(){
	freopen("extract.in","r",stdin);
	freopen("extract.out","w",stdout);
//	freopen("in.in","r",stdin);
//	freopen("out.out","w",stdout);
    cin>>s;
    s=' '+s;
    a[0]=1;
    ans[0]="";
    for (int i=1;i<s.length();i++){
        if (s[i]>='0'&&s[i]<='9'){
            ll num=0;
            while (i<s.length()&&s[i]>='0'&&s[i]<='9'){
                num=num * 10+(s[i]-'0');
                i++;
            }
            i--;
            a[cnt]=num;
        }else if (s[i]=='['){
            cnt++;
            a[cnt]=1;
            ans[cnt]="";
        }else if (s[i]==']'){
            string temp=ans[cnt];
            string repeated;
            for (int k=0;k<a[cnt];k++){
                repeated+=temp;
            }
            cnt--;
            ans[cnt]+=repeated;
            ans[cnt+1]="";
            a[cnt+1]=1;
        }else if (isalpha(s[i])){
            ans[cnt]+=s[i];
        }
    }
    cout<<ans[0]<<endl;
    return 0;
}