求助,#4和#10 WA
查看原帖
求助,#4和#10 WA
437628
凤南天楼主2022/2/8 21:22
#include<bits/stdc++.h>
using namespace std;
string s;
int sum=0,lo,ccc=0;
void xk(int &i){
	while(s[i]==' '){
		i++;
	}
}
int go(int &i){
    int a[11],c=0,ans=0;
    while(s[i]>='0'&&s[i]<='9'){
        a[c++]=s[i]-'0';
        i++;
    }
    i--;
    int d=1;
    for(int i=c-1;i>=0;i--){
        ans+=a[i]*d;d*=10;
    }
    return ans;
}
int go2(int i){
    int a[11],c=0,ans=0;
    while(s[i]>='0'&&s[i]<='9'){
        a[c++]=s[i]-'0';
        i++;
    }
    i--;
    int d=1;
    for(int i=c-1;i>=0;i--){
        ans+=a[i]*d;d*=10;
    }
    return ans;
}
void lon(int i){
	int c=1,j=0;
	while(j<c){//REPEAT 10[   R[ ]]
		if(s[i]=='R') c++;		
		if(s[i]==']') j++;
		lo++;i++;
	}
	lo--;
}
int Repeat(int i){
	int x=i,lo_=lo,ans=0;ccc++;
	for(i=x;i<lo_+x;i++){
		//cout<<1<<endl;
		int re;
		if(s[i]=='F') {i+=2; xk(i);ans+=go(i);}
    	if(s[i]=='B') {i+=2; xk(i);ans-=go(i);}
    	if(s[i]=='R') {i+=6; xk(i);re=go2(i);i++;xk(i);lo=0;lon(i);ans+=re*Repeat(i); i+=lo;}
	}
	return ans;
}
int main(){
    getline(cin,s);
    for(int i=0;i<s.length();i++){
    	int re;
        if(s[i]=='F') {i+=2; xk(i);sum+=go(i);}
    	if(s[i]=='B') {i+=2; xk(i);sum-=go(i);}
    	if(s[i]=='R') {i+=6; xk(i);re=go2(i);i++;xk(i);lo=0;lon(i);sum+=re*Repeat(i); i+=lo;}
    }
    cout<<abs(sum);
}
2022/2/8 21:22
加载中...