Pagini recente » Cod sursa (job #1733283) | Cod sursa (job #893499) | Cod sursa (job #2335320) | Cod sursa (job #994739) | Cod sursa (job #1022091)
#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(){
if ( s[p]=='N'&&s[p+1]=='O' ){p+=4;return !expresie();}
if ( s[p]=='(' ){++p;return expresie();}
if ( s[p]=='T'&&s[p+1]=='R' ){p+=4;return 1;}
if ( s[p]=='F'&&s[p+1]=='A'){p+=5;return 0;}
++p;
return v[s[p-1]];
}
bool expresie(){
bool b=element();
while ( s[p]==' ' ){
++p;
if ( s[p]=='A'&&s[p+1]=='N' ){
p+=4;
b=b&element();
}
if ( s[p]=='O'&&s[p+1]=='R' ){
p+=3;
b=b|element();
}
}
return b;
}
int main()
{
fgets(s,1001,f);
fscanf(f,"%d",&n);
fscanf(f,"%c",&c);
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;
}