REPEAT一次就能过,嵌套就过不了,总是输出>1e9的大数。
代码改一次大数变一次
#include<bits/stdc++.h>
using namespace std;
string op;char c;
long long dis,a,num,b[10];
void FD(int x){
dis+=x;
}
void BK(int x){
dis-=x;
}
int REPEAT(int f,int n){
while(cin>>op){
if(op=="]")return b[n]*f;
else if(op=="FD"){
cin>>a;
b[n]+=a;
}
else if(op=="BK"){
cin>>a;
b[n]-=a;
}
else if(op=="REPEAT"){
cin>>num>>c;
b[n]+=REPEAT(num,n+1);
}
}
}
int main() {
//cout<<"yes"<<'\n';
while(cin>>op){
if(op=="FD"){
cin>>a;
//cout<<"FD"<<' ';
dis+=a;
}
if(op=="BK"){
cin>>a;
dis-=a;
}
if(op=="REPEAT"){
cin>>num>>c;
dis+=REPEAT(num,1);
}
}
cout<<abs(dis);
}