В Чепуляндии на прямой Ox располагаются три дома. Первый находится в точке x1, второй находится в точке x2, а третий — в точке x3. Муниципалитет города планирует
поставить новую 5G вышку, для чего ему нужно выбрать определенную оптимальную
точку. Какое минимальное суммарное расстояние от домов жителей до новой 5G вышки?
Гарантируется, что правильный ответ всегда является целым числом.
При решении задачи опишите свой метод сортировки вставками. Не используйте
встроенные методы сортировки.
Входные данные
В первой строке следует три различных целых числа x1, x2 и x3 (1 ≤ x1, x2, x3 ≤ 100)
— координаты первого, второго и третьего домов.
Выходные данные
Выведите единственное целое число — минимальное суммарное расстояние от домов
жителей до новой 5G вышки.
Примеры
Примечание
В первом тестовом примере оптимально установить вышку в точке 5. Таким образом,
расстояние до первого дома будет равно 4 (от точки 5 до точки 1), расстояние до третьего
- 4 (от точки 9 до точки 5), а до второго расстояние будет равно нулю, так как он
располагается в точке, где установлена вышка.
входные данные
1 5 9
выходные данные
8
Формулы площадей квадрата S₁ и круга S₂ известны, что легко позволяет нам найти нужное условие.
Если нужно, чтобы случай, когда квадрат вписан в круг тоже учитывался, строгое неравенство следует заменить нестрогим.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
var s1:=ReadReal('Площадь квадрата');
var s2:=ReadReal('Площадь круга');
if pi*s1<2*s2 then Writeln('Квадрат умещается в круге')
else Writeln('Квадрат не умещается в круге')
end.
Тестовое решение:
Площадь квадрата 24.6
Площадь круга 28.4
Квадрат не умещается в круге
var
a: array[1..l] of integer;
d: array[1..l] of real;
i, otr, k, m: integer;
begin
otr:=0; k:=0; m:=0;
//считаем массив а
for i:=1 to l do
begin
readln(a[i]);
//если ввели положительное число,увеличим перем. otr на 1
if a[i] < 0 then
inc(otr);
//если ввели отрицательное число,увеличим перем. k на 1
//и к переменной m прибавим элемент
if a[i] > 0 then
begin
inc(k);
inc(m, a[i]);
end;
end;
//заполним массив d
for i:=1 to l do
//если индекс четный, присвоим элементу otr
//иначе присвоим среднее арифметическое
if i mod 2 = 0 then
d[i] := otr
else
d[i] := m/k;
end.