1. ЛАЗЕРНАЯ СИГНАЛИЗАЦИЯ 1   В процессе модернизации технического обеспечения и применения новых информационных технологий для защиты от воров вокруг банка поставили лазерную сигнализацию, которая состоит из нескольких лазерных станций. Станции ставятся по периметру здания, и между соседними станциями проходит лазерный луч. Также каждые соседние станции соединены кабелем. Известны координаты всех станций в порядке их обхода «по» или «против» часовой стрелки. Вам, как отличнику учебы, поручили ответственное задание – посчитать суммарную длину кабеля, который соединяет станции. Входные данные В первой строке находятся целое N – число базовых станций (1<=N<=2*10^6). В следующих N строках – по два вещественных числа x, y (|x|<=10^4, |y|<=10^4), разделённых пробелом: координаты каждой станции (в прямоугольной декартовой системе координат). Результат Необходимо вывести суммарную длину кабеля, который потребуется проложить, с точностью до двух знаков после точки. Примеры входных и выходных данных:   Входные данные    5 -1 -1 -1 1 1 1 2 0 1 -1 Выходные данные  8.83

Вопрос пользователя:

 

 

1. ЛАЗЕРНАЯ СИГНАЛИЗАЦИЯ 1

 

В процессе модернизации технического обеспечения и применения новых информационных технологий для защиты от воров вокруг банка поставили лазерную сигнализацию, которая состоит из нескольких лазерных станций. Станции ставятся по периметру здания, и между соседними станциями проходит лазерный луч. Также каждые соседние станции соединены кабелем. Известны координаты всех станций в порядке их обхода «по» или «против» часовой стрелки. Вам, как отличнику учебы, поручили ответственное задание – посчитать суммарную длину кабеля, который соединяет станции.

Входные данные

В первой строке находятся целое N – число базовых станций (1<=N<=2*10^6).

В следующих N строках – по два вещественных числа x, y (|x|<=10^4, |y|<=10^4), разделённых пробелом: координаты каждой станции (в прямоугольной декартовой системе координат).

Результат

Необходимо вывести суммарную длину кабеля, который потребуется проложить, с точностью до двух знаков после точки.

Примеры входных и выходных данных:

 

Входные данные    5 -1 -1 -1 1 1 1 2 0 1 -1

Выходные данные  8.83

Илюха отвечает:

var
n,i:integer;
x0,y0,x1,y1,x2,y2,s:real;
begin
readln(n);
s:=0;
readln(x0,y0);
x1:=x0;
y1:=y0;
for i:=2 to n do
begin
readln(x2,y2);
s:=s+sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
x1:=x2;
y1:=y2;
end;
x2:=x0;
y2:=y0;
s:=s+sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
writeln(s:10:2);
end.

Добавить свой ответ