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

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

Условие

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

информатика 10-11 класс 2342

Решение

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.


Ответ: в решение

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

Меню

Присоединяйся в ВК