Cod sursa(job #196920)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 30 iunie 2008 11:33:47
Problema Adapost 2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.93 kb
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.