Помогите, пожалуйста, найти ошибку в коде(неверный ответ на 1 из тестов codeforces)
https://codeforces.com/group/xogLHTsCuS/contest/264828/problem/D (задача из закрытой группы по обучению с++, перейти по ссылке не получится)
Вам на уроке поставили задачу: найти расстояние между прямой и точкой. Но в задаче очень много пунктов, поэтому вам нужно написать программу, чтобы не повторять одни и те же действия.
Входные данные В первой строке указаны X координаты двух точек прямой, разделенные пробелом X1, X2 (|X1|,|X2|≤10**18)
Во второй строке указаны Y координаты двух точек прямой, разделенные пробелом Y1, Y2 (|Y1|,|Y2|≤10**18)
В третьей строке указаны координаты точки X3, Y3 (|X3|,|Y3|≤10**18, разделенные пробелом.
Все координаты точек - целые числа.
Выходные данные Вывести расстояние с точностью 3 знака после точки.
1 тест(работает): -7 -1 -1 7 -10 6
6.600
в примечании была ссылка Wikipedia (формулу брал оттуда)
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long int x1, x2, y1, y2, x3, y3;
long double ans;
// координаты х двух точек на прямой
cin >> x1 >> x2;
// координаты y двух точек на прямой
cin >> y1 >> y2;
// координаты точки
cin >> x3 >> y3;
ans = (double) abs((y2 - y1) * x3 - (x2 - x1) * y3 + x2 * y1 - y2 * x1) / sqrt((y2 - y1) * (y2 - y1) + (x2 - x1) * (x2 - x1));
printf("%.3Lf", ans);
return 0;
}```