Задача:
На поверхности прямоугольного параллелепипеда сидит муха и нанесена капля варенья. Определите наименьшее расстояние, которое должна проползти муха по поверхности параллелепипеда, чтобы доползти до капли.
Входные данные:
Первые три строки входных данных содержат положительные числа K, L, M, являющиеся размерами параллелепипеда вдоль осей OX, OY, OZ. Один угол параллелепипеда находится в начале координат, противоположный – в точке (K;L;M), ребра параллелепипеда параллельны осям координат.
Следующие три строки входных данных содержат координаты мухи X1, Y1, Z1, затем идут три строки с координатами варенья X2, Y2, Z2. Задаваемые этими координатами точки находятся на поверхности параллелепипеда. Все числа во входных данных целые, не превосходящие 1000.
Выходные данные:
Программа должна вывести единственное число – кратчайшее расстояние, которое должна проползти муха по поверхности параллелепипеда, чтобы добраться до варенья. Ответ необходимо вывести в виде действительного числа, проверка будет осуществляться с точностью 10-3.
Пример
Вход Выход
1 2.236067977
1
1
0
0
0
1
1
1
Вход Выход
12 13
5
2
1
0
1
12
4
1
Написал "каркас" программы без уравнения, которое решает задачу:
Program rast;
var K, L, M, X1, Y1, Z1, X2, Y2, Z2, R : real;
begin
writeln('Введите 3 положительных числа K, L, M, являющиеся размерами параллелепипеда вдоль осей OX, OY, OZ');
readln(K, L, M);
writeln('Введите координаты мухи X1, Y1, Z1');
readln(X1, Y1, Z1);
writeln('Введите координаты варенья X2, Y2, Z2');
readln(X2, Y2, Z2);
R:=;
writeln(R);
end.
Какое уравнение должно вычислять R? Помогите пожалуйста