Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 3 KB
program lbetu;
var i:integer; xd:int64;
a:array[0..1337,1..64] of byte; d:integer;
m:array[1..64] of byte;
y:array[0..18] of integer;
procedure ber(k:integer);
var c:integer; begin
for c:=1 to 64 do if a[k,c]=1 then m[c]:=1; end;
procedure kiv(k:integer);
var c:integer; begin
for c:=1 to 64 do if a[k,c]=1 then m[c]:=0; end;
function joe(l:integer):boolean;
var c,buli,lk:integer; begin buli:=1;
for c:=1 to 64 do if (a[l,c]=1) and (m[c]=1) then buli:=0;
for c:=64 downto 1 do if m[c]=0 then lk:=c;
if a[l,lk]=0 then buli:=0;
if buli=0 then joe:=false else joe:=true; end;
procedure elemcsin;
var c,k:integer;
begin
for c:=1 to 64 do m[c]:=0; for c:=0 to 18 do y[c]:=0;
for c:=0 to 1337 do for k:=1 to 64 do a[c,k]:=0; d:=0;
for k:=0 to 6 do begin for c:=k*8+1 to k*8+6 do begin inc(d);
a[d,c]:=1; a[d,c+1]:=1; a[d,c+2]:=1; a[d,c+8]:=1; end; end;
for k:=0 to 6 do begin for c:=k*8+1 to k*8+6 do begin inc(d);
a[d,c]:=1; a[d,c+1]:=1; a[d,c+2]:=1; a[d,c+8+2]:=1; end; end;
for k:=1 to 7 do begin for c:=k*8+1 to k*8+6 do begin inc(d);
a[d,c]:=1; a[d,c+1]:=1; a[d,c+2]:=1; a[d,c-8]:=1; end; end;
for k:=1 to 7 do begin for c:=k*8+1 to k*8+6 do begin inc(d);
a[d,c]:=1; a[d,c+1]:=1; a[d,c+2]:=1; a[d,c-8+2]:=1; end; end;
for k:=0 to 5 do begin for c:=k*8+1 to k*8+7 do begin inc(d);
a[d,c]:=1; a[d,c+8]:=1; a[d,c+16]:=1;
a[d,c+16+1]:=1; end; end;
for k:=0 to 5 do begin for c:=k*8+1 to k*8+7 do begin inc(d);
a[d,c]:=1; a[d,c+8]:=1; a[d,c+16]:=1;
a[d,c+1]:=1; end; end;
for k:=0 to 5 do begin for c:=k*8+2 to k*8+8 do begin inc(d);
a[d,c]:=1; a[d,c+8]:=1; a[d,c+16]:=1;
a[d,c-1]:=1; end; end;
for k:=0 to 5 do begin for c:=k*8+2 to k*8+8 do begin inc(d);
a[d,c]:=1; a[d,c+8]:=1; a[d,c+16]:=1;
a[d,c+16-1]:=1; end; end;
end;
procedure kiir;
var c,k:integer; begin
writeln(); inc(xd); writeln(xd); end;
begin
elemcsin; xd:=0; i:=1;
while (i>0) do begin
if i<17 then begin
inc(y[i]);
while (y[i]<=d) and (not(joe(y[i]))) do inc(y[i]);
if y[i]>d then begin y[i]:=0; dec(i); kiv(y[i]); end
else begin ber(y[i]); inc(i); end;
end else begin
kiir; y[i]:=0; dec(i); kiv(y[i]);
end;
end;
writeln(xd);
end.