Cod sursa(job #891078)

Utilizator tgistvanTorok Istvan tgistvan Data 25 februarie 2013 13:33:01
Problema Rubarba Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.55 kb
type rek=record
         e,f:integer;

         end;
var minx,maxx,miny,maxy:rek;
    mix,max,miy,may:rek;
    f,g:text;
    n,m,i,j,x,y:integer;
    szx,szy:longint;

    r,p:real;



function iranyt(a,b:rek):real;
var h:real;
begin
{writeln(b.e,'   ',b.f);}
h:=abs((b.f-a.f)/(b.e-a.e));
iranyt:=h;
end;

function tavols(a,b:rek;r:real):real;
var n1,n2:real;
begin
n1:=a.f-(r*a.e);
n2:=b.f-(r*b.e);
tavols:=abs(n1-n2);
end;

begin
assign(f,'rubarba.in');reset(f);
readln(f,n);

minx.e:=maxint;
miny.f:=maxint;
mix.e:=maxint;
miy.f:=maxint;


for i:=1 to n do begin
readln(f,x,y);
{szx:=szx+x;
szy:=szy+y; }

if x<minx.e then begin
                       mix.e:=minx.e;
                       mix.f:=minx.f;

                       minx.e:=x;
                       minx.f:=y;
                 end else
                 if (x<mix.e)and(mix.e<>minx.e) then begin mix.e:=x;
                       mix.f:=y;
                 end;

if x>maxx.e then begin
                       max.e:=maxx.e;
                       max.f:=maxx.f;

                       maxx.e:=x;
                       maxx.f:=y;
                 end else if (x>max.e)and(max.e<>maxx.e) then begin max.e:=x;
                       max.f:=y;
                 end;


if y>maxy.f then begin
                       may.e:=maxy.e;
                       may.f:=maxy.f;

                       maxy.e:=x;
                       maxy.f:=y;
                 end else if (y>may.f)and(may.f<>maxy.f) then begin may.e:=x;
                       may.f:=y;
                 end;

if y<miny.f then begin
                       miy.e:=miny.e;
                       miy.f:=miny.f;

                       miny.e:=x;
                       miny.f:=y;

                 end else if (y<miy.f)and(miy.f<>miny.f) then begin miy.e:=x;
                       miy.f:=y;
                 end;
{2}
{if (x<mix.e)and(mix.e<>minx.e) then begin mix.e:=x;
                       mix.f:=y;
                 end;
if (x>max.e)and(max.e<>maxx.e) then begin max.e:=x;
                       max.f:=y;
                 end;
if (y>may.f)and(may.f<>maxy.f) then begin may.e:=x;
                       may.f:=y;
                 end;
if (y<miy.f)and(miy.f<>miny.f) then begin miy.e:=x;
                       miy.f:=y;
                 end; }




end;

r:=iranyt(mix,minx);
{writeln(r); }
p:=tavols(minx,maxx,r);
assign(g,'rubarba.out');rewrite(g);
writeln(g,p*p:0:2);

{writeln(szx/n:0:2,' ',szy/n:0:2);
 writeln((szx/n)*(szy/n):0:2);  }
close(g);
close(f);
end.