Pagini recente » Cod sursa (job #648164) | Cod sursa (job #3233519) | Cod sursa (job #1652288) | Cod sursa (job #1600685) | Cod sursa (job #1456214)
using namespace std;
#include <fstream>
ifstream f("bool.in");
ofstream g("bool.out");
char s[1010],s2[102],al[30], *p=s;
int n;
int sau();
int si();
int eval();
void erase()
{
while(*p==' ') p++;
}
int eval()
{
erase();
int sol=0;
if(*p=='N' && *(p+1)=='O')
{
p+=3;
sol=1-eval();
}
else if(*p=='(')
{
p++;
sol=sau();
p++;
}
else if(*p=='T' && *(p+1)=='R')
{
p+=4;
sol=1;
}
else if(*p=='F' && *(p+1)=='A')
{
p+=5;
sol=0;
}
else
{
sol=al[*p-'A'];
p++;
}
erase();
return sol;
}
int si()
{
erase();
int sol=eval();
while(*p=='A' && *(p+1)=='N')
{
p+=3;
sol&=eval();
}
erase();
return sol;
}
int sau()
{
erase();
int sol=si();
while(*p=='O' && *(p+1)=='R')
{
p+=2;
sol|=si();
}
erase();
return sol;
}
int main()
{
int i;
f.getline(s,1010);
f>>n;
f.get();
f.getline(s2,102);
for(i=0; i<n; i++)
{
al[s2[i]-'A']=1-al[s2[i]-'A'];
g<<sau();
p=s;
}
}