Pagini recente » Cod sursa (job #1319044) | Cod sursa (job #374321) | Cod sursa (job #531735) | Cod sursa (job #1440695) | Cod sursa (job #281436)
Cod sursa(job #281436)
var st:array[1..2,1..10000] of integer;
niv,valid:array[1..2] of integer;
n,l,v,i:integer;
procedure verif(i:integer);
begin
if valid[i]=1 then
if st[i,niv[i]-1]<4 then
begin
dec(niv[i]);
if st[i,niv[i]]=v then valid[i]:=1
else valid[i]:=0;
end
else if st[i,niv[i]-1]=4 {A} then dec(niv[i])
else if st[i,niv[i]-1]=5 {B} then
begin
if v=3 then valid[i]:=0;
if v=1 then
begin
dec(niv[i]);
st[i,niv[i]]:=6; inc(niv[i]); {C}
st[i,niv[i]]:=4; inc(niv[i]); {A}
st[i,niv[i]]:=3; inc(niv[i]); {3}
st[i,niv[i]]:=4; inc(niv[i]); {A}
end;
{2 e bun si nu duce la nici o modificare B->2B}
end
else {st[i,niv[i]-1]=6 -> este C in stiva}
begin
if v=2 then dec(niv[i]);
if v=1 then
begin
dec(niv[i]);
st[i,niv[i]]:=4; inc(niv[i]); {A}
st[i,niv[i]]:=2; inc(niv[i]); {2}
end;
if v=3 then
begin
dec(niv[i]);
st[i,niv[i]]:=6; inc(niv[i]); {C}
st[i,niv[i]]:=5; inc(niv[i]); {B}
end;
end;
if (niv[i]=0) and (l>0) then valid[i]:=0;
end;
begin
assign(input,'perle.in'); reset(input);
assign(output,'perle.out'); rewrite(output);
readln(n);
while n>0 do
begin
read(l);
if l=1 then
begin
read(v);
writeln(1);
end
else
begin
valid[2]:=1; valid[1]:=1;
niv[2]:=2; niv[1]:=2;
st[1,1]:=5;{B} st[2,1]:=6;{C}
while l>0 do
begin
read(v);
for i:=1 to 2 do verif(i);
dec(l);
end; {while l>0}
if (niv[1]=1) and (valid[1]=1) or (niv[2]=1) and (valid[2]=1) then writeln(1)
else writeln(0);
end; {else}
dec(n);
end; {while n>0}
end.