Cod sursa(job #273148)

Utilizator FllorynMitu Florin Danut Flloryn Data 8 martie 2009 11:23:44
Problema Adapost 2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.13 kb
program pascal;
type punct=record
     x,y:real;
     end;
 const dx:array[1..4] of real=(-1,0,1,0);
       dy:array[1..4] of real=(0,1,0,-1);

 var a:array[1..50001] of punct;
     f,g:text;
     n,i,j:longint;
     w,auxx,auxy,t,d,x,y:real;
     ok:boolean;

 begin
  assign(f,'adapost2.in'); reset(f);
  assign(g,'adapost2.out'); rewrite(g);
  read(f,n);  x:=0.0; y:=0.0;
  for i:=1 to n do
      begin
      read(f,a[i].x,a[i].y);
      x:=x+a[i].x;
      y:=y+a[i].y;
      end;
  x:=x/n; y:=y/n;
  w:=100.0;
  while w>0.001 do
     begin
     d:=0.0;
     for i:=1 to n do d:=d+sqrt(sqr(a[i].x-x)+sqr(a[i].y-y));
     ok:=true;
     for i:=1 to 4 do
          begin
          auxx:=x+w*dx[i];
          auxy:=y+w*dy[i];
          t:=0;
          for j:=1 to n do t:=t+sqrt(sqr(a[j].x-auxx)+sqr(a[j].y-auxy));
          if t<d then
                begin
                d:=t;
                x:=auxx;
                y:=auxy;
                ok:=false;
                break;
                end;
          end;
   if ok then  w:=w/2;
  end;
  writeln(g,x:0:3,' ',y:0:3);
  close(f); close(g);
end.