RE#2 #9 MLE #5 求调
查看原帖
RE#2 #9 MLE #5 求调
500200
panrui_SCZ楼主2024/11/19 20:30

rt

#include<bits/stdc++.h>
using namespace std;
#define int long long
string s;
int n;
int dfs(int l,int r){
	if(l>=r) return 0;
	if(s[l]=='F'){
		int ans=0,lst=0;
		for(int i=l+3;i<=r&&isdigit(s[i]);i++)
			lst=i,ans=ans*10+s[i]-'0';
		return dfs(lst+2,r)+ans;
	} 
	if(s[l]=='B'){
		int ans=0,lst=0;
		for(int i=l+3;i<=r&&isdigit(s[i]);i++)
			lst=i,ans=ans*10+s[i]-'0';
		return dfs(lst+2,r)-ans;
	}
	if(s[l]=='R'){
		int cnt=1;
		int ans=0,lst=0;
		for(int i=l+7;i<=r&&isdigit(s[i]);i++)
			lst=i,ans=ans*10+s[i]-'0';
		for(int i=lst+2;i<=r&&isdigit(s[i]);i++){
			if(s[i]==']') cnt--;
			if(s[i]=='[') cnt++;
			if(cnt==0){
				return ans*dfs(lst+2,i-1)+dfs(i+1,r);
			}
		}
	}
}
signed main(){
	getline(cin,s);
	n=s.size();
	s=" "+s;
	cout<<abs(dfs(1,n))<<endl;
	return 0;
}
2024/11/19 20:30
加载中...