Cod sursa(job #2271041)

Utilizator BogdanGhGhinea Bogdan BogdanGh Data 27 octombrie 2018 22:23:30
Problema Bool Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
char c[1005],*p,a;
bool b[300];
int n,i;
int eval();
int termen();
int factor()
{
    int r=0;
    if(*p=='(')
    {
        p++;
        eval();}
    else {r=b[*p];p+=2;}
    return r;
}
int termen()
{
    int r=factor();
    while((*p=='A'&&*(p+1)=='N')||(*p=='N'&&*(p+1)=='O'))
    {
        if(*p=='A'&&*(p+1)=='N')
        r=r&factor();
        else r=!r;
        p+=4;
    }
    return r;

}
int eval()
{
   int r=termen();
   while(*p=='O'&&*(p+1)=='R')
    {
        r=r|termen();
        p+=3;
    }
   return r;
}


ifstream f("bool.in");
ofstream g("bool.out");
int main()
{
    f.getline(c,1003);
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a;
        p=c;
        b[a]=!b[a];
        g<<eval();
    }
    return 0;
}