Pagini recente » Cod sursa (job #2056855) | Cod sursa (job #2721239) | Cod sursa (job #31902) | Cod sursa (job #1922903) | Cod sursa (job #2523227)
//
// main.cpp
// Evaluare
//
// Created by Andu Andu on 13/01/2020.
// Copyright © 2020 Andu Andu. All rights reserved.
//
/*#include <fstream>
#include <string>
using namespace std;
ifstream f ("evaluare.in");
ofstream g ("evaluare.out");
char termeni[100003];
char *p=termeni;
long oi();
long paranteze();
long pm () {
long r = oi();
while (*p=='+' || *p=='-') {
if (*p=='+') {
++p;
r+=oi();
} else if (*p=='-') {
++p;
r-=oi();
}
}
return r;
}
long oi() {
long r = paranteze();
while (*p=='*' || *p=='/') {
if (*p=='*') {
++p;
r*=paranteze();
} else if (*p=='/') {
++p;
r/=paranteze();
}
}
return r;
}
long paranteze() {
long r = 0;
if (*p=='(') {
++p;
r=pm();
++p;
} else {
while ( *p>='0' && *p<='9' ) {
r = r*10 + *p - '0';
++p;
}
}
return r;
}
int main(int argc, const char * argv[]) {
f>>termeni;
g<<pm();
return 0;
}*/
#include <fstream>
using namespace std;
ifstream f ("bool.in");
ofstream g ("bool.out");
int n,i;
char s[1005],c,*p;
bool v[27],ev();
bool elem()
{
bool b=0;
if(*p=='(') {p++;b=ev();p++;}
else if(*p=='F'&&*(p+1)=='A') {p+=6;b=0;}
else if(*p=='T'&&*(p+1)=='R') {p+=5,b=1;}
else if(*p=='N'&&*(p+1)=='O') {p+=4,b=!elem();}
else {b=v[*p-'A'];p+=2;}
return b;
}
bool nd()
{
bool b=elem();
while(*p=='A'&&*(p+1)=='N') p+=4,b=b&elem();
return b;
}
bool ev()
{
bool b=nd();
while(*p=='O'&&*(p+1)=='R') p+=3,b=b|nd();
return b;
}
int main()
{
f.getline(s,1005);
f>>n;
for(i=1;i<=n;++i)
{
f>>c;
v[c-'A']=!v[c-'A'];
p=s;
g<<ev();
}
return 0;
}