Код не проходит все тесты
Всем доброго времени суток! Кто может подсказать ошибку в коде к задаче "наименьшее расстояние". Даны координаты вершин треугольника, координаты точки D, лежащая внутри треугольника, требуется найти и вывести наименьшее из расстояний от точки D до какой-либо из сторон треугольника.( https://docs.google.com/viewer?url=http://statement.bacs.cs.istu.ru/statement/get/CjNiYWNzL3Byb2JsZW0vc2Nob29sXzdfMTBfNC9zdGF0ZW1lbnQvdmVyc2lvbnMvQy9kb2MSBgoESK35ow/bacs/akF-3ReCFrr_DL0mmj2I-z5BnXrlP9V-5anuoPzJC-Rhrlexniz9X6ZINvsV7GfVIIB9MYvh9j2uTdyCBTobe1nTCGsznB8aWcydNbpUoLcrXvtTe-uW8hsW0SwXJfo2UV7_smGjxuFrE2Pwmfa-DOjdEcSfEwlB6WgAtwqwuiAiH-QJagQA3UiXSKd5swksLAP-Ere9OOypQdmZLcM8xE8TkNQWioiBsFuMzqmhAAcwSK2r_Zxqz9IhfdJK0R9xdzyDVn594XcoWvN08iSm_QfgqFYVTkZ1tnkjHm0mHLfSlGiIXhWbOLau9TkGPWGl2ajRDPz8xyFqqK5NB9BA_Q) Код проходит на 79 баллов. Код:
#include <iostream>
#include <cmath>
using namespace std;
double getArea(double ax, double ay, double bx, double by, double cx, double cy){
return fabs((bx-ax)*(ay+by)+(cx-bx)*(cy+by)+(ax-cx)*(ay+cy))/2;
}
int main()
{
double ax, ay, bx, by, cx, cy, dx, dy;
double min = 10000;
cin>>ax>>ay>>bx>>by>>cx>>cy>>dx>>dy;
double ab=sqrt(pow((bx-ax), 2)+pow((by-ay),2));
double bn=sqrt(pow((cx-bx),2)+pow((cy - by),2));
double an=sqrt(pow((cx-ax),2)+pow((cy-ay),2));
if ((2*getArea(ax, ay, bx, by, dx, dy))/ab<min)
min = (2*getArea(ax, ay, bx, by, dx, dy))/ab;
if ((2*getArea(bx, by, cx, cy, dx, dy))/bn<min)
min =(2*getArea(bx, by, cx, cy, dx, dy))/bn;
if ((2*getArea(ax, ay, cx, cy, dx, dy))/an<min)
min =(2*getArea(ax, ay, cx, cy, dx, dy))/an;
cout<<round(min*10000)/10000;
}