Cod sursa(job #2230169)

Utilizator LorenaMariaHantig Lorena LorenaMaria Data 9 august 2018 12:48:22
Problema Bool Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("bool.in");
ofstream out("bool.out");
char e[1001],s[101];
int v[26],n,p;
int f1();
int f2();
int f3();
int f3()
{ if(e[p]=='N' && e[p+1]=='O')
  { p+=4;
    return !f3();
  }
  if(e[p]=='T' && e[p+1]=='R')
  { p+=4;
    return 1;
  }
  if(e[p]=='F' && e[p+1]=='A')
  { p+=5;
    return 0;
  }
  if(e[p]=='(')
  { int r;
    p++;
    r=f1();
    p++;
    return r;
  }
  p++;
  return v[e[p-1]-'A'];
}
int f2()
{ int r=f3();
  while(e[p] && e[p+1]=='A')
  { p+=5;
    r&=f3();
  }
  return r;
}
int f1()
{ int r=f2();
  while(e[p] && e[p]!=')')
  { p+=4;
    r|=f2();
  }
  return r;
}
int main()
{ in.getline(e,1005);
  in>>n>>s;
  for(int i=0;i<n;i++)
  { v[s[i]-'A']=!v[s[i]-'A'];
    out<<f1();
    p=0;
  }
  in.close();
  out.close();
  return 0;
}