Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
请教:这样是不是因为输入死循环引起TLE??#include <stdio.h> #include <string.h> char s[200]; bool get(int i,int j) { int x , y , l; bool g , f , rev = false; char op; x = i; if( s[x] == '!' ){rev = true ;x++;} if( s[x] == 'V' ){g = true;y=x;} else if( s[x] == 'F' ){g = false;y=x;} else if( s[x] == '(') { for( l = 1 ,y = x +1 ; y <= j ; y++ ) { if( s[y] == '(')l++; else if( s[y] == ')' ){l--;if(l==0)break;} } g = get(x+1,y-1); } if( rev == true ) {g = !g;rev = false;} for( x = y +1 ; x <= j ; ) { op = s[x++]; if( s[x] == '!' ){rev = true ;x++;} if( s[x] == 'V' ){f = true;y=x;} else if( s[x] == 'F' ){f = false;y=x;} else if( s[x] == '(') { for( l = 1 ,y = x +1 ; y <= j ; y++ ) if( s[y] == '(')l++; else if( s[y] == ')' ){l--;if(l==0)break;} f = get(x+1,y-1); } if( rev == true ) {f = !f;rev = false;} if( op == '&' ) g = g & f; else g = g | f; x = y +1 ; } return g; } int main() { int i , t = 1 ; char c; //FILE* f = fopen("in.txt","r"); for( c = getchar() ; ; c = getchar()) { if( c == EOF )return 0; i = 0; while( c != '\n' ) { switch(c) { case ' ':break; default :s[i++] = c; } c = getchar(); } s[i] = 0; if( strlen(s) != 0 ){printf("Expression %d: %c\n",t++,(get(0,strlen(s)-1)?'V':'F'));} } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator