⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex.dpr

📁 tongji acm-online judge solution
💻 DPR
字号:
program Ural_1348(Input,Output);
type
	TData=Extended;
	TPoint=record
		x,y:TData;
	end;
function Dot(A,B:TPoint;C,D:TPoint):TData;
begin
	Result:=(B.x-A.x)*(B.y-A.y)+(D.x-C.x)*(D.y-C.y);
end;
function GetDist(A,B:TPoint):TData;
begin
	Result:=Sqrt(Sqr(B.x-A.x)+Sqr(B.y-A.y));
end;
function Min(A,B:TData):TData;
begin	
	if A<B then Result:=A
	else Result:=B;
end;
function Max(A,B:TData):TData;
begin	
	if A>B then Result:=A
	else Result:=B;
end;
procedure Main;
var
	A,B,C:TPoint;
	L:TData;
	S,P:TData;
	ReachL,WholeL:TData;
begin
	Read(A.x,A.y,B.x,B.y,C.x,C.y,L);

	if (Dot(A,B,C,A)*Dot(A,B,C,B)<=0)and(GetDist(A,B)>0) then 
	begin
		P:=(GetDist(A,B)+GetDist(A,C)+GetDist(B,C))/2;
		S:=Sqrt(P*(P-GetDist(A,B))*(P-GetDist(A,C))*(P-GetDist(B,C)));
		ReachL:=2*S/GetDist(A,B);
	end
	else ReachL:=Min(GetDist(C,A),GetDist(C,B));
	if L>=ReachL then Writeln('0.00')
	else Writeln(ReachL-L:0:2);

	WholeL:=Max(GetDist(C,A),GetDist(C,B));
	if L>=WholeL then Writeln('0.00')
	else Writeln(WholeL-L:0:2);
end;
begin
	Main;
end.

⌨️ 快捷键说明

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