Cod sursa(job #564132)

Utilizator andunhillMacarescu Sebastian andunhill Data 26 martie 2011 19:37:38
Problema Bool Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
using namespace std;
ifstream f("bool.in");
ofstream g("bool.out");
char a[1001],*p,x;
bool v[26];
int N;
bool exp();
bool fact()
{	bool rez;
	if(*p=='N' && *(p+1)=='O')
	{	p+=4; return !fact(); }
	if(*p=='T' && *(p+1)=='R')
	{	p+=4; return 1; }
	if(*p=='F' && *(p+1)=='A')
	{	p+=5; return 0; }
	if(*p=='(')
	{	p++; 
		rez=exp(); 
		p++; 
		return rez; 
	}
	p++; return v[*(p-1)];
}
bool term()
{	bool rez=fact();
	while(*p && *p=='A')
		p+=5 , rez&=fact();
	return rez;
}
bool exp()
{	bool rez=term();
	while(*p && *p!=')')
		p+=4 , rez|=term();
	return rez;
}
int main()
{	f.get(a,1001);
	f>>N;
	for(int i=1;i<=N;i++)
	{	f>>x; p=a;
		v[x]=!v[x];
		g<<exp();
	}
	f.close();
	g.close();
	return 0;
}