Pagini recente » Cod sursa (job #2718287) | Cod sursa (job #651000) | Cod sursa (job #2345575) | Cod sursa (job #2397113) | Cod sursa (job #763226)
Cod sursa(job #763226)
Program adapost2;
const eps=0.00001;
var x,y:array [1..50000] of double;
p1,p2,s,pas:double;
b1:array [1..1 shl 15] of char;
i,n:longint;
ok:boolean;
fi,fo:text;
function distanta(a,b:double):double;
var s:double;
begin
s:=0;
for i:=1 to n do s:=s+sqrt( (x[i]-a)*(x[i]-a)+(y[i]-b)*(y[i]-b) );
distanta:=s;
end;
begin
assign(fi,'adapost2.in');
assign(fo,'adapost2.out');
settextbuf(fi,b1);
reset(fi); rewrite(fo); readln(fi,n);
for i:=1 to n do begin
readln(fi,x[i],y[i]);
p1:=p1+x[i]; p2:=p2+y[i];
end;
p1:=p1/n; p2:=p2/n; s:=distanta(p1,p2); pas:=1000;
while pas>eps do begin
ok:=true;
{ while ok do begin
ok:=false;}
if s>distanta(p1,p2+pas) then begin p2:=p2+pas; s:=distanta(p1,p2); ok:=true; end;
if s>distanta(p1,p2-pas) then begin p2:=p2-pas; s:=distanta(p1,p2); ok:=true; end;
if s>distanta(p1+pas,p2) then begin p1:=p1+pas; s:=distanta(p1,p2); ok:=true; end;
if s>distanta(p1-pas,p2) then begin p1:=p1-pas; s:=distanta(p1,p2); ok:=true; end;
{ end; }
pas:=pas/2;
end;
write(fo,p1:0:4,' ',p2:0:4);
close(fo);
end.