Pagini recente » Cod sursa (job #275861) | Cod sursa (job #1045581) | Cod sursa (job #2448030) | Cod sursa (job #1929749) | Cod sursa (job #188489)
Cod sursa(job #188489)
type punct=record
x,y:double;
end;
const dl:array[1..4] of longint=(0,0,1,-1);
dc:array[1..4] of longint=(1,-1,0,0);
var i,j,n,d:longint;
step:double;
r,pmin,p:punct;
dmin,dd:double;
v:array[1..50100] of punct;
ok:boolean;
function dist(a,b:punct):double;
begin
dist:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
end;
begin
assign(input,'adapost2.in');reset(input);
assign(output,'adapost2.out');rewrite(output);
readln(n);
for i:=1 to n do
begin
readln(v[i].x,v[i].y);
r.x:=r.x+v[i].x;
r.y:=r.y+v[i].y;
end;
r.x:=r.x/n;
r.y:=r.y/n;
for i:=1 to n do
dmin:=dmin+dist(v[i],r);
step:=100;
while step>0.00001 do
begin
ok:=false;
for d:=1 to 4 do
begin
p.x:=r.x+dl[d]*step;
p.y:=r.y+dc[d]*step;
dd:=0;
for i:=1 to n do
dd:=dd+dist(v[i],p);
if dd<dmin then
begin
dmin:=dd;
pmin:=p;
r:=p;
ok:=true;
end;
end;
if not ok then
step:=step/2;
end;
writeln(pmin.x:0:4,' ',pmin.y:0:4);
close(input);close(output);
end.