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