Pagini recente » Cod sursa (job #2338520) | Cod sursa (job #1888848) | Cod sursa (job #391764) | Cod sursa (job #1285497) | Cod sursa (job #983943)
Cod sursa(job #983943)
#include <cstdio>
#include <cstring>
char s[1002],*p;
int n,v[30],l;
int termen();
int factor();
int eval()
{ int r=termen();
while(*p=='O') p+=2, r|=termen();
return r;
}
int termen()
{ int r=factor();
while(*p=='A') p+=3, r&=factor();
return r;
}
int factor()
{ int r;
if(*p=='(') p++, r=eval(), p++;
else if(*p=='T') p+=4, r=1;
else if(*p=='F') p+=5, r=0;
else if(*p=='N') p+=3, r=!factor();
else r=v[*p-'A'], p++;
return r;
}
int main()
{ freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
fgets(s,1002,stdin);
l=strlen(s);
int i,k=0;
for(i=0; i<l; i++) if(s[i]!=' ') s[k++]=s[i];
s[k]='\0';
scanf("%d\n",&n);
char x[210];
fgets(x,n+5,stdin);
for (i=0; i<n; i++)
{ v[x[i]-'A']=!v[x[i]-'A'];
p=s;
printf("%d",eval());
}
return 0;
}