RT,代码
#include <cstdio>
#define fo(i_,j_,k_) for(int i_=j_;i_<=k_;++i_)
#define fr(i_,j_,k_) for(int i_=j_;i_>=k_;--i_)
#define It(type_) type_::iterator
#define rg register
#define rtn return
#define il inline
typedef long long ll;
int memory[30005],*ptr;
char cmd[300005],input_[300005],*curr,*input;
int main()
{
curr = cmd;
while((*curr = getchar()) && *curr != '$') ++curr;
*curr = 0;
*(curr-1) = 0;
scanf("%*c");
input = input_;
while((*input = getchar())&& *input != '$') ++input;
*input = 0;
*(input-1) = 0;
curr = cmd;
input = input_;
ptr = memory;
// printf("%s,%s.\n",cmd,input_);
while(*curr != '\0')
{
switch(*curr)
{
case '<': -- ptr;break;
case '>': ++ ptr;break;
case '+': ++ *ptr; break;
case '-': -- *ptr; break;
case '.': printf("%c",*ptr);break;
case ',':
*ptr = (*input == '\0')? -1 : *input;
if(*input) ++input;
break;
case '[':
if(*ptr == 0)
while(*curr != ']')
++curr;
break;
case ']':
--curr;int cnt = 0;
while(!(cnt == 0 && *curr == '['))
{
if(*curr == ']') ++ cnt;
if(*curr == '[') -- cnt;
--curr;
}
--curr;
break;
}
++ curr;
}
rtn 0;
}
本人xxs,勿D。
违规紫衫。