✎ Задать свой вопрос   *более 30 000 пользователей получили ответ на «Решим всё»

Задача 518 На плоскости задано N точек. Найти две

УСЛОВИЕ:

На плоскости задано N точек. Найти две точки среди данных, находящихся на минимальном расстоянии друг от друга.
Входные данные.
Первая строка входного файла содержит число N (2?N?10^5). Далее в файле записано N пар целых чисел, задающих координаты точек. Все координаты по модулю не превышают 104.
Выходные данные.
В выходной файл выведите пару чисел — номера точек, для которых достигается минимум расстояния. Точки нумеруются, начиная с 1. Если решений несколько, то следует вывести любое из них.

РЕШЕНИЕ:

var F, G:text;
a,b,c,d,i,j,n:integer;
var rasst,min:real;
begin

assign(F,'in.txt');
assign(G,'out.txt');
reset(F);
rewrite(G);


read(F,n);
readln(F);

min:=1000;

for i:=1 to n do begin



read(F,a); read(F,b);

for j:=1 to n do begin
if(i<>j) then begin
read(F,c); read(F,d);
rasst:=sqrt((c-a)*(c-a)+(d-b)*(d-b));

if(rasst<min) and (rasst<>min) then begin
min:=rasst; rewrite(G); writeln(G,i,' ',j);
end;


end;


if(j=n) then begin
close(F);
reset(F);
readln(F);
end;

end;


end;

close(F);
close(G);

end.

Вопрос к решению?
Нашли ошибку?

ОТВЕТ:

в решение

Добавил slava191, просмотры: ☺ 1422 ⌚ 24.01.2014. информатика 10-11 класс

Решения пользователей

Увы, но свой вариант решения никто не написал... Будь первым!
Хочешь предложить свое решение? Войди и сделай это!

Написать комментарий

Последние решения
С=ε ε_(0)S/d=ε ε_(0)πr^2/d
✎ к задаче 43759
В полярной системе координат, откладывают лучи от начала О.
Эти лучи заполняют всю плоскость.

В условии задачи предлагают провести лучи
φ =0
φ =π/8
φ =2π/8=π/4
и так далее.

На каждом таком луче откладывается расстояние.

Например при φ =π/2
откладываем r=4/(2-3*0)=2

На луче откладываем расстояние только в одну сторону, т.е

r ≥ 0

4/(2-3cos φ ) >0 ⇒ 2-3cos φ >0 ⇒[b] cos φ <2/3[/b]


Вообще-то это гипербола.

Надо перейти от полярных координат к декартовым

r=sqrt(x^2+y^2)
cos φ =x/r


sqrt(x^2+y^2)=4/(2-3*x/sqrt(x^2+y^2))

упростить и получить уравнение в декартовых координатах

(прикреплено изображение)
✎ к задаче 43787
4^(x)=-2x


Строим график функции y=4^(x) и y=-2x

Из рисунка видно, что корень находится на [-0,5;0]


---------------------------------


Пусть f(x)=4^(x)+2x

(cм. приложение 2) Постановка задачи.

Если на концах отрезка [-0,5;0] функция y=f(x) имеет разные знаки, то внутри [-0,5;0] находится корень уравнения.


f(-0,5)=4^(-0,5)+2*(-0,5)<0
f(0)=4^(0)+0=1>0

[b]Корень находится [/b]на [-0,5;0]


Делим отрезок [-0,5;0]пополам

Получаем два отрезка:

[-0,5;-0,25] и [-0,25;0]

Проверяем корень на принадлежность первому отрезку или второму.

4^(-0,25)+2*(-0,25)>0

так как
4^{-0,25}=\frac{1}{4^{0,25}}=\frac{1}{\sqrt[4]{4}}=\frac{1}{\sqrt[2]{2}} ≈ 0,7считаем

-2*(-0,25)=0,5


0,7-0,5>0

Значит, корень на [-0,5;-0,25]

Далее снова делим отрезок пополам.

Получаем два отрезка:

[-0,5;-0,375] и [-0,375;-0,25]

...
(прикреплено изображение)
✎ к задаче 43786
s(t)=-(1/5)*cos5t + C

s(π/2)=2

2=(-1/5)*cos(5π/2)+C, так как cos(5π/2)=cos(2π+(π/2))=cos(π/2)=0

C=[b]2[/b]

s(t)=-(1/5)*cos5t + [b]2[/b] ⇒

s(π)=(-1/5)cos5π+2=(-1/5)*(-1)+2=2 целых(1/5)=2,2

✎ к задаче 43784
4*(x^(-4+1))/(-4+1)+6*(x^(-3+1)/(-3+1))+C

О т в е т. 4)
✎ к задаче 43785