Здравствуйте! Есть задача на acmp и решение в вещественных числах с использованием типа double. Во входных данных числа могут быть заданы с 6-тью знаками после запятой, а абсолютные величины до 100, то есть, нужно 8 разрядов.
Дан радиус окружности и даны прямые, заданные двумя точками, точки могут лежать как внутри круга, так и на окружности, требуется проверить для каждой пары прямых, лежит ли точка пересечения внутри круга или снаружи.
В ходе решения возникают числа, в которых 16 разрядов, а также происходит их деление, в связи с этим есть ощущение, что точности типа double не хватает. Судя по всему, контр-тест должен содержать ровно две прямые, которые пересекаются очень близко к окружности, или пересекаются прямо на окружности. Я попробовал построить пересечение в точке (99.999999, 0.014142) с радиусом 100, тогда разность радиус-вектора точки и радиуса окружности будет порядка 3.835·10 - 9, с чем благополучно справляется тип double.