Oh no WA#25! Please help me!
var
a1,a2,a3,h,s,aa,bb:real;
a:array[1..3,1..2] of integer;
i,l:integer;
procedure readdata;
begin
readln(a[1,1],a[1,2],a[2,1],a[2,2]);
readln(a[3,1],a[3,2],l);
end;
procedure writedata;
begin
if aa>=0 then
writeln(aa:0:2) else writeln('0.00');
if bb>=0 then
writeln(bb:0:2) else writeln('0.00');
end;
function d(x1,y1,x2,y2:integer):real;
begin
d:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
procedure square;
var
p:real;
begin
a1:=d(a[1,1],a[1,2],a[2,1],a[2,2]);
a2:=d(a[3,1],a[3,2],a[2,1],a[2,2]);
a3:=d(a[1,1],a[1,2],a[3,1],a[3,2]);
p:=(a1+a2+a3)/2;
s:=sqrt(p*(p-a1)*(p-a2)*(p-a2));
end;
begin
readdata;
square;
if (a[1,1]=a[2,1]) and (a[1,2]=a[2,2]) then
begin
aa:=d(a[1,1],a[1,2],a[3,1],a[3,2]);
bb:=aa;
end else
begin
if (a1*a1+a2*a2<a3*a3) or (a2*a2+a3*a3<a1*a1) or (a1*a1+a3*a3<a2*a2) then
begin
aa:=d(a[1,1],a[1,2],a[3,1],a[3,2]);
if d(a[2,1],a[2,2],a[3,1],a[3,2])<aa
then aa:=d(a[2,1],a[2,2],a[3,1],a[3,2]);
end else
begin
h:=d(a[1,1],a[1,2],a[2,1],a[2,2]);
aa:=s/(0.5*h);
end;
bb:=d(a[3,1],a[3,2],a[2,1],a[2,2]);
if d(a[3,1],a[3,2],a[1,1],a[1,2])>bb then
bb:=d(a[3,1],a[3,2],a[1,1],a[1,2]);
end;
aa:=aa-l;
bb:=bb-l;
writedata;
end.