#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int main() { char inp[90]; while(scanf("%s",inp)) { if((inp[0]=='E')&&(inp[1]=='N')&&(inp[2]=='D')) break; int now=0; int inv=0; int saved=1; int stack=1; int sl=strlen(inp); for(int lx=0;lx<sl;lx++) { //printf("d[%c]\n",inp[lx]); if(inp[lx]=='!') inv=1-inv; else if(inp[lx]=='1') { stack=stack&&(1-inv); inv=0; } else if(inp[lx]=='0') { stack=stack&&(inv); inv=0; } else if(inp[lx]=='+') { now=now+saved*stack; stack=1; saved=1; if(now>=1) break; } else if(inp[lx]=='*') { //printf("saved=%d\tstack=%d\n",saved,stack); saved=saved&&stack; stack=1; } } printf("%d\n",now+saved*stack>=1); } return 0; }
2013年10月22日 星期二
TIOJ 1047 C.邏輯計算機
[無]
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言