mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 1013.pas
This commit is contained in:
parent
ed51e35196
commit
06a9fd4965
56
QUSTOJ/1013.pas
Normal file
56
QUSTOJ/1013.pas
Normal file
|
@ -0,0 +1,56 @@
|
|||
var x,y:array[0..100010]of double;
|
||||
n:longint;
|
||||
procedure init;
|
||||
var i:longint;
|
||||
begin
|
||||
readln(n);
|
||||
for i:=1 to n do
|
||||
readln(x[i],y[i]);
|
||||
end;
|
||||
procedure kp(st,ed:longint);
|
||||
var i,j:longint;
|
||||
q,t:double;
|
||||
begin
|
||||
i:=st;
|
||||
j:=ed;
|
||||
q:=x[(i+j)div 2];
|
||||
repeat
|
||||
while x[i]<q do inc(i);
|
||||
while x[j]>q do dec(j);
|
||||
if i<=j then
|
||||
begin
|
||||
t:=x[i];x[i]:=x[j];x[j]:=t;
|
||||
t:=y[i];y[i]:=y[j];y[j]:=t;
|
||||
inc(i);dec(j);
|
||||
end;
|
||||
until i>j;
|
||||
if st<j then kp(st,j);
|
||||
if i<ed then kp(i,ed);
|
||||
end;
|
||||
function dis(i,j:longint):double;
|
||||
var p,q:int64;
|
||||
begin
|
||||
dis:=sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]));
|
||||
end;
|
||||
procedure main;
|
||||
var min,l:double;
|
||||
i,j,k:longint;
|
||||
begin
|
||||
kp(1,n);
|
||||
min:=1e10;
|
||||
for i:=1 to n do
|
||||
begin
|
||||
j:=i+1;
|
||||
while (x[j]-x[i]<min)and(j<=n) do inc(j);
|
||||
for k:=i+1 to j-1 do
|
||||
begin
|
||||
l:=dis(i,k);
|
||||
if min>l then min:=l;
|
||||
end;
|
||||
end;
|
||||
writeln(min:0:3);
|
||||
end;
|
||||
begin
|
||||
init;
|
||||
main;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user