Pagini recente » Cod sursa (job #1846014) | Cod sursa (job #2173980) | Cod sursa (job #2370854) | Cod sursa (job #530967) | Cod sursa (job #1023233)
#include <cstdio>
FILE*f=fopen("bool.in","r");
FILE*h=fopen("bool.out","w");
int n,p;
bool v[251];
char s[1005],c;
bool expresie();
bool element(){
bool k=0;
if ( s[p]=='(' ){++p;k=expresie();++p;}
else if ( s[p]=='T'&&s[p+1]=='R' ){p+=5;k=1;}
else if ( s[p]=='F'&&s[p+1]=='A'){p+=6;k=0;}
else if ( s[p]=='N'&&s[p+1]=='O' ){p+=4;k=!element();}
else {k=v[s[p]];p+=2;}
return k;
}
bool termen(){
bool b=element();
while ( s[p]=='A'&&s[p+1]=='N' ){p+=4;b=b&element();}
return b;
}
bool expresie(){
bool b=termen();
if ( s[p]=='O'&&s[p+1]=='R' ){
p+=3;
b=b|termen();
}
return b;
}
int main()
{
fgets(s,1002,f);
fscanf(f,"%d\n",&n);
for ( int i=1;i<=n;++i ){
p=0;
fscanf(f,"%c",&c);
if ( v[c]==1 )v[c]=0;
else v[c]=1;
fprintf(h,"%d",expresie());
}
return 0;
}