Cod sursa(job #2736623)

Utilizator stefanvoicaVoica Stefan stefanvoica Data 3 aprilie 2021 18:07:43
Problema Bool Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <bits/stdc++.h>
#define dim 200002
#define mod 100003
using namespace std;
ifstream fin ("bool.in");
ofstream fout("bool.out");
char s[1005];
bool val[300];
int i;

bool sau ();

bool si ();

bool bracket ();


bool sau ()
{
    bool rez=si();
    while (s[i]=='O' && s[i+1]=='R')
    {
        i=i+3;
        rez=rez|si();
    }
    return rez;
}

bool si ()
{
    bool rez=bracket();
    while (s[i]=='A' && s[i+1]=='N')
    {
        i=i+4;
        rez=rez&bracket();
    }
        return rez;
}

bool  bracket  ()
{
    bool rez;
    if (s[i]=='(')
    {
        i++;
        rez=sau();
        ++i;
    }
    else    if (s[i]=='N'&& s[i+1]=='O')
    {
        i+=4;
        rez=!bracket();
    }
    else    if (s[i]=='T' && s[i+1]=='R')
    {
        i+=5;
        rez=1;
    }
    else    if (s[i]=='F' && s[i+1]=='A')
    {
        i+=6;
        rez=0;
    }
    else    {
        rez=val[s[i]];
        i+=2;
    }
    return rez;
}

int   main()
{
    fin.getline(s,sizeof s);
    int n;
    char c;
    fin>>n;
    while (n--)
    {
        fin>>c;
        val[c]=!val[c];
        i=0;
        fout<<sau();
    }
    return 0;
}