比赛 20241022 评测结果 AAWAAWWWAW
题目名称 解压缩 最终得分 50
用户昵称 蜀山鸭梨大 运行时间 0.035 s
代码语言 C++ 内存使用 3.35 MiB
提交时间 2024-10-22 10:08:03
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
string S,s;
stack <int> stk1,stk2;
long long e=1; 
int main(){
	freopen("extract.in","r",stdin);
	freopen("extract.out","w",stdout);
	cin>>S;
	int n=S.size();
	for(int i=0;i<n;i++){
		if(S[i]>='1'&&S[i]<='9'){
			stk2.push(S[i]-'0');
			continue ;
		}
		if(stk2.size()){
			int j=1,num=0;
			while(stk2.size()){
				num+=stk2.top()*j;
				j*=10;
				stk2.pop();
			}
			stk1.push(num);
			e*=num;
		}
		if(S[i]>='A'&&S[i]<='Z'){
			s.append(S.substr(i,1));
		}
		else{
			if(s.size()){
				for(long long j=1;j<=e;j++){
					cout<<s;
				} 
				s.erase(0);
			}
			if(S[i]==']'){
				e/=stk1.top();
				stk1.pop();
			}
		}
	}
	if(s.size()) cout<<s;
	return 0;
}