Pagini recente » Cod sursa (job #1517311) | Cod sursa (job #782610) | Cod sursa (job #120296) | Cod sursa (job #2976694) | Cod sursa (job #905872)
Cod sursa(job #905872)
#include <cstdio>
#include <fstream>
#include <cstring>
using namespace std;
int litere[30],n,k,i,c,st;
char expresie[1010],p;
FILE *f;
int rezolva()
{
st++;
int noturi=1,semn,val=0;
while(st<n+1){
if((expresie[st]>='A')&&(expresie[st]<='Z')){
if((expresie[st-2]='A')&&(expresie[st-1]='N')&&(expresie[st]='D')){semn=1;}
if((expresie[st-2]='N')&&(expresie[st-1]='O')&&(expresie[st]='T')){semn=2;}
if( (expresie[st-1]='O')&&(expresie[st]='R')){semn=3;}
}
if((expresie[st]==' ')||(expresie[st]==')')) {
if(((expresie[st-1]>='A')&&(expresie[st-1]<='Z'))&&((expresie[st-2]<'A')||(expresie[st-2]>'Z'))){
if(val==0){val=noturi*litere[expresie[st-1]-'A'+1];}
else{
if(semn==2){val=noturi*=1;}
if(semn==1){val=noturi*(val&&litere[expresie[st-1]-'A'+1]);noturi=1;}
if(semn==3){val=noturi*(val||litere[expresie[st-1]-'A'+1]);noturi=1;}
semn=0;
}
}
}
if(expresie[st]=='('){
if(semn==2){val=noturi*=1;}
if(semn==1){val=noturi*rezolva();noturi=1;}
if(semn==3){val=noturi*rezolva();noturi=1;}
semn=0;
}
if(expresie[st]==')'){
return noturi*val;
}
st++;
}
}
int main()
{
ifstream f("bool.in");
freopen("bool.out","w",stdout);
f.getline(expresie,1010);
n=strlen(expresie);
expresie[n]=')';
f>>k;
for(i=1;i<=30;i++){litere[i]=-1;}
for(i=1;i<=k;i++){
f>>p;
litere[p-'A'+1]*=-1;
st=-1;
c=rezolva();
printf("%d",c);
}
return 0;
}