ex2.dpr

来自「tongji acm-online judge solution」· DPR 代码 · 共 67 行

DPR
67
字号
{
	追赶技术
}
program Ural_1175(Input,Output);
type
	TIndex=Longint;
	TState=record
		X1,X2:TIndex;
	end;
var
	A1,A2,A3,A4,B1,B2,C:TIndex;
	S:TState;

procedure Transfer(var P:TState);
var
	T:TIndex;
begin
	with P do
	begin
		T:=A1*X1*X2+A2*X1+A3*X2+A4;
		//if (T>B1) and (T>B2) then Dec(T,((T-B2-1) div C+1)*C); //This is slow than following.
		if T>B1 then
			while T>B2 do
				Dec(T,C);
		X1:=X2;
		X2:=T;
	end;
end;
function IsEqual(const A,B:TState):Boolean;
begin
	Result:=((A.X1=B.X1) and (A.X2=B.X2));
end;
procedure Main;
var
	A,B:TState;
	i:TIndex;
	Start,Loop:TIndex;
begin
	Read(A1,A2,A3,A4,B1,B2,C,S.X1,S.X2);
	A:=S;
	B:=S;
	repeat
		Transfer(A);
		Transfer(B);
		Transfer(B);
	until IsEqual(A,B);
	Loop:=0;
	repeat
		Inc(Loop);
		Transfer(A);
	until IsEqual(A,B);
	A:=S;
	for i:=1 to Loop do
		Transfer(A);
	B:=S;
	Start:=0;
	while not IsEqual(A,B) do 
	begin
		Inc(Start);
		Transfer(A);
		Transfer(B);
	end;
	Writeln(Start+1,' ',Loop);
end;
begin
	Main;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?