Підготовка до олімпіади з програмування (задача Вогняне дихання )

Одного разу Сеньйор розповів Дракону, що минулого вечора він K
разів бачив над лісом дим. Як ви знаєте, диму без вогню не буває.
Дракон пригадав, що вчора він гуляв лісом та час від часу заради
розваги дмухав вогнем, як це інколи роблять всі поважні дракони.
Всього Дракон дмухав вогнем у N точках. Сеньйору раптом стало
цікаво – наскільки далеко він може побачити драконів дим?
Нехай відстань, на яку видно дим – R. Тоді кожного разу, коли
Дракон дмухає вогнем, дим можуть побачити лише ті, хто знаходиться
на відстані не більшій ніж R від дракона.
Знаючи координати хатинки Сеньйора, а також усіх місць, де
дмухав вогнем Дракон, скажіть, яка найменша можлива відстань R,
при якій Сеньйор міг бачити дим хоча б K разів.
Вхідні дані:
У першому рядку вхідних даних задані два цілих числа X та Y –
координати хатинки Сеньйора. У наступному рядку задані два цілих
числа N та K. У наступних N рядках задані пари цілих чисел xi та yi
– координати точок, в яких Дракон дмухав вогнем.
Вихідні дані:
В єдиному рядку виведіть найменше можливе значення R. Відповідь
буде зарахованою, якщо її відносна або абсолютна похибка не
перевищуватиме 10-7
.
Обмеження:
1 ≤ N ≤ 100,
1 ≤ K ≤ N,
0 ≤ X, Y, xi, yi ≤ 1000000000 (109).
Приклад вводу:
5 6
4 2
3 4
8 11
6 5
17 25
Приклад виводу:
2.82842712

……….. тут кординатна площина і відстань між двома точками

 


program Hi; 
type 
mas = array of integer; 
mas1 = array of real; 
var 
xi,yi:mas; 
R:mas1; 
j,i,X,Y,N,K : integer; 
m : real; 
begin 
readln(X,Y); 
readln(N,K); 
setlength(xi,N); 
setlength(yi,N); 
setlength(R,N+1); 
for i := 0 to N-1 do 
begin 
readln(xi[i],yi[i]); 
end; 
for i:=0 to N-1 do 
begin 
R[i]:=Sqrt(sqr(abs(x-xi[i]))+sqr(abs(y-yi[i]))); 
end; 
for j := 1 to N-1 do 
begin 
for i := 1 to N-j do 
if R[i] > R[i+1] then 
begin 
m := R[i]; 
R[i] := R[i+1]; 
R[i+1] := m; 
end; 
end; 
for i := 1 to N do 
writeln(' сорт.',R[i]:5); 
end.

Comments

comments

Ви можете пропустити читання запису і залишити коментар. Розміщення посилань заборонено.

Залишити коментар


шість − 3 =