Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Dany;
- type MMM =array[1..2,1..2000] of byte;
- var A,B : byte;
- KK,RR,KO: integer;
- MK,MO : MMM;
- function Est(M : MMM;KKK : integer;X,Y : byte) : boolean;
- var I : integer;
- FO : boolean;
- begin
- FO := false;
- for I := 1 to KKK do
- if (X=M[1,I])AND(Y=M[2,I]) then
- begin
- FO := true;
- break;
- end;
- Est := FO;
- end;
- function Delaem(D : byte;var X1,Y1 : byte;var X,Y : byte) : boolean;
- var Fl,F2 : boolean;
- I : integer;
- begin
- Fl := true;
- X := X1;
- Y := Y1;
- Case D of
- 1 : if X<A then X := A else Fl := false;
- 2 : if X>0 then X := 0 else Fl := false;
- 3 : if Y<B then Y := B else Fl := false;
- 4 : if Y>0 then Y := 0 else Fl := false;
- 5 : if (X>0)AND(Y<B) then
- begin
- Y := Y + X;
- X := 0;
- if Y > B then
- begin
- X := Y - B;
- Y := B;
- end
- end else Fl := false;
- 6 : if (Y>0)AND(X<A) then
- begin
- X := X + Y;
- Y := 0;
- if X > A then
- begin
- Y := X - A;
- X := A;
- end
- end else Fl := false;
- end;
- Delaem := Fl;
- end;
- procedure Rec(X,Y : byte);
- var i,X1,Y1 : byte;
- begin
- Inc(RR);
- for i:= 1 to 6 do
- begin
- if (Delaem(i,X,Y,X1,Y1)) then
- begin
- if (NOT Est(MK,KK,X1,Y1)) then
- begin
- Inc(KK);
- MK[1,KK] := X1;
- MK[2,KK] := Y1;
- end;
- if NOT Est(MO,KO,X1,Y1) then
- begin
- Inc(KO);
- MO[1,KO] := X1;
- MO[2,KO] := Y1;
- Rec(X1,Y1);
- end;
- end;
- end;
- Dec(RR);
- end;
- begin
- RR := 0;
- MK[1,1] := 0;
- MK[2,1] := 0;
- KK := 1;
- MO[1,1] := 0;
- MO[2,1] := 0;
- KO := 1;
- ReadLn(A,B);
- Rec(0,0);
- WriteLn(KK);
- ReadLn;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement