Pagini recente » Cod sursa (job #2129951) | Cod sursa (job #316689) | Cod sursa (job #1061361) | Cod sursa (job #3230026) | Cod sursa (job #328460)
Cod sursa(job #328460)
var s:array[1..1000] of char;
v:array['A'..'Z'] of 0..1;
n,i,j:word;
c:char;
f,g:text;
function o(var x:word):byte;
forward;
function p(var x:word):byte;
var a:0..1;
begin
if s[x]=' ' then
x:=x+1;
a:=o(x);
if s[x]=' ' then
x:=x+1;
while (s[x]='O') and (s[x+1]='R') do
begin
x:=x+2;
if s[x]=' ' then
x:=x+1;
if (a=1) or (o(x)=1) then
a:=1
else
a:=0;
end;
p:=a;
end;
function an(var x:word):byte;
forward;
function o(var x:word):byte;
var b:0..1;
begin
b:=an(x);
if s[x]=' ' then
x:=x+1;
while (s[x]='A') and (s[x+1]='N') do
begin
x:=x+3;
if s[x]=' ' then
x:=x+1;
if (b=1) and (an(x)=1) then
b:=1
else
b:=0;
end;
o:=b;
end;
function an(var x:word):byte;
var c:0..1;
begin
if (s[x]='N') and (s[x+1]='O') then
begin
x:=x+3;
if s[x]=' ' then
x:=x+1;
c:=1-an(x);
end
else
if s[x]='(' then
begin
x:=x+1;
if s[x]=' ' then
x:=x+1;
c:=p(x);
x:=x+1;
if s[x]=' ' then
x:=x+1;
end
else
if (s[x]='T') and (s[x+1]='R') then
begin
x:=x+4;
if s[x]=' ' then
x:=x+1;
c:=1;
end
else
if (s[x]='F') and (s[x+1]='A') then
begin
x:=x+5;
if s[x]=' ' then
x:=x+1;
c:=0;
end
else
begin
c:=v[s[x]];
x:=x+1;
if s[x]=' ' then
x:=x+1;
end;
an:=c;
end;
begin
assign(f,'bool.in');
assign(g,'bool.out');
reset(f);rewrite(g);
while not eoln(f) do
begin
i:=i+1;
read(f,s[i]);
end;
readln(f);
readln(f,n);
for i:=1 to n do
begin
read(f,c);
v[c]:=1-v[c];
j:=1;
write(g,p(j));
end;
close(f);close(g);
end.