Недавно я решал эту задачу. Я свёл ее к более простой задаче: даны точки A, B, C, и надо узнать точку пересечения 2 прямых: AB и OC, где точка O — начало координат.
Код, 90/92 тестов пройдено
Сначала я написал пересечение двух прямых формулой (функция find()), и получил ВА на 2 тестах. Потом я написал это при помощи бинпоиска (функция findgood()) и получил AC. Далее я снова заслал решение с find(), добавив #define ld __float128, и оно зашло.
Кто-нибудь может объяснить, что за чертовщина тут произошла? Как формульное решение может быть менее точным, чем бинпоиск?



