Pagini recente » Cod sursa (job #1993419) | Cod sursa (job #673368) | Cod sursa (job #1656372) | Cod sursa (job #928849) | Cod sursa (job #1873207)
# include <iostream>
# include <fstream>
using namespace std;
int p = 0;
char s[1001];
bool v[128];
bool E();
bool T() {
if ( s[p] == 'N' && s[p + 1] == 'O' ) {
p += 3;
return !T();
} else if ( s[p] == 'T' && s[p + 1] == 'R' ) {
p += 4;
return true;
} else if ( s[p] == 'F' && s[p + 1] == 'A' ) {
p += 5;
return false;
} else if ( s[p] == '(' ) {
p ++;
bool t = E();
p ++;
return t;
} else {
bool t = v[s[p]];
p ++;
return t;
}
}
bool F() {
bool t = T();
while ( s[p] == 'A' && s[p + 1] == 'N' ) {
p += 3;
t &= T();
}
return t;
}
bool E() {
bool t = F();
while ( s[p] == 'O' && s[p + 1] == 'R' ) {
p += 2;
t |= F();
}
return t;
}
int main() {
ifstream fin( "bool.in" );
ofstream fout( "bool.out" );
noskipws( fin );
fin >> s[p];
while ( s[p] != '\n' ) {
p += ( s[p] != ' ' );
fin >> s[p];
}
skipws( fin );
int n;
char q;
fin >> n;
for ( int i = 0; i < n; i ++ )
fin >> q, v[q] ^= 1, p = 0, fout << E();
fin.close();
fout.close();
return 0;
}