Pagini recente » Cod sursa (job #2837733) | Cod sursa (job #2268751) | Cod sursa (job #1640475) | Cod sursa (job #1153002) | Cod sursa (job #2111756)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
char s[1005];
int val[30],numar;
ofstream fout("bool.out");
int fct(int st,int dr)
{
int nr=0;
for(int i=dr;i>=st;i--)
if(nr==0&&s[i]=='R'&&s[i-1]=='O')
return (fct(st,i-2)||fct(i+1,dr));
else
if(s[i]==')')
nr++;
else
if(s[i]=='(')
nr--;
nr=0;
for(int i=dr;i>=st;i--)
if(nr==0&&s[i]=='D'&&s[i-1]=='N')
return (fct(st,i-3)&&fct(i+1,dr));
else
if(s[i]==')')
nr++;
else
if(s[i]=='(')
nr--;
nr=0;
for(int i=dr;i>=st;i--)
if(nr==0&&s[i]=='T'&&s[i-1]=='O')
return !(fct(i+1,dr));
else
if(s[i]==')')
nr++;
else
if(s[i]=='(')
nr--;
if(s[st]=='('&&s[dr]==')')
return fct(st+1,dr-1);
while(s[st]==' ')
st++;
while(s[dr]==' ')
dr--;
if(st!=dr)
{
if(s[st]=='T')
return 1;
return 0;
}
int numar=val[s[st]-'A']; fout<< numar;
return numar;
}
int main()
{
int n,nr;
ifstream fin("bool.in");
fin.getline(s,1005);
nr=strlen(s);
fin>>n;
for(int i=0;i<n;++i)
{
char x;
fin>>x;
if(val[x-'A'])
val[x-'A']=0;
else
val[x-'A']=1;
int ceva;
ceva=fct(0,nr-1);
}
return 0;
}