Cod sursa(job #290172)

Utilizator flamecataCiobanu Alexandru-Catalin flamecata Data 27 martie 2009 16:32:31
Problema Adapost 2 Scor 100
Compilator fpc Status done
Runda aa Marime 1.27 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.