p1901.pas
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 68 行
PAS
68 行
{$R-,I-,Q-}
PROGRAM p1901;
CONST
maxn = 100;
change : array[1..8,1..2] of Longint =
((1,0),(1,1),(1,-1),(0,1),(0,-1),(-1,0),(-1,-1),(-1,1));
TYPE
TData = array[1..maxn] of Double;
VAR
n : Longint;
Datax , Datay : TData;
minx , miny , maxx , maxy
: Double;
ans : Real;
PROCEDURE Init;
var
i : Longint;
begin
readln ( n );
minx := 1e10;
miny := 1e10;
maxx := - 1e10;
maxy := - 1e10;
for i := 1 to n do
begin
readln ( Datax [i] , Datay [i] );
if Datax [i] > maxx then maxx := Datax [i];
if Datax [i] < minx then minx := Datax [i];
if Datay [i] > maxy then maxy := Datay [i];
if Datay [i] < miny then miny := Datay [i];
end;
end;
FUNCTION Dis ( x , y :Double ): Real;
var
i : Integer;
temp : Real;
begin
temp := 0;
for i := 1 to n do
temp := temp + sqrt ( sqr (Datax [i] - x) + sqr ( Datay [i] - y ) );
Dis := temp;
end;
PROCEDURE Make( x , y : Double);
var
temp : Real;
cx , cy , i : Longint;
begin
temp := Dis ( x , y );
if temp >= ans then exit;
ans := temp;
for i := 1 to 8 do Make ( x + change [i] [1] , y + change [i] [2] );
end;
BEGIN
Init;
ans := 1e10;
make ( ( minx + maxx ) / 2 , ( miny + maxy ) / 2 );
writeln ( ans : 0 : 0 );
END.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?