Cod sursa(job #2105633)

Utilizator dariastanescuDaria Stanescu dariastanescu Data 13 ianuarie 2018 19:22:47
Problema Bool Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>

using namespace std;

ifstream f("bool.in");
ofstream g("bool.out");

char s[100001],ch;
int n,i,j;
bool ok[30];
bool si();
bool nu();
bool sau();

int main()
{
    f.getline(s,100000);
    f>>n;
    for(j=1;j<=n;++j)
    {
        f>>ch;
        ok[ch-65]=!ok[ch-65];
        i=0;
        g<<sau();
    }
  return 0;
}
bool sau()
{
    bool r;
    r=si();
    while(s[i]=='O' && s[i+1]=='R')
    {
        i=i+3;
        r=r|si();
    }
    return r;
}
bool si()
{
    bool r;
    r=nu();
    while(s[i]=='A' && s[i+1]=='N')
    {
        i=i+4;
        r=r&nu();
    }
    return r;
}
bool nu()
{
    bool r;
    if(s[i]=='(')
    {
        i++;
        r=sau();
        i++;
    }
    else if(s[i]=='T' && s[i+1]=='R')
    {
        i=i+5;
        r=1;
    }
    else if(s[i]=='F' && s[i+1]=='A')
    {
        i=i+6;
        r=0;
    }
    else if(s[i]=='N' && s[i+1]=='O')
    {
        i=i+4;
        r=!nu();
    }
    else
    {
        r=ok[s[i]-65];
        i=i+2;
    }
    return r;
}