hack:
in:REPEAT 5[ FD 50 REPEAT 10[FD 100]] FD 100
out:5350
myout:5750
代码:
#include<bits/stdc++.h>
using namespace std;
int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0' || ch>'9'){ if(ch=='-') f=-1;ch=getchar();}
while(ch>='0' && ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*f;
}
long long f(){
long long sum=0,x;
char a;
while(cin>>a){
if(a=='F') {
x=2;
while(x--) getchar();
x=read();
sum+=x;
}
else if(a=='B'){
x=2;
while(x--) getchar();
x=read();
sum-=x;
}
else if(a=='R'){
x=6;
while(x--) getchar();
x=read();
long long kkkkk=f();
// cout<<"k:"<<kkkkk<<endl;
sum+=x*kkkkk;
}
else if(a==']'){
return sum;
}
// cout<<sum<<endl;
}
return sum;
}
int main(){
cout<<abs(f());
return 0;
}
把注释的两行取消注释可以发现计算出: FD 50 REPEAT 10[FD 100]没有执行重复5遍而是执行了前进一百,再执行重复5遍,求调