#include <stdio.h>
#include <math.h>
int main(void) {
double ax, ay, bx, by, cx, cy, dx, dy;//Даны по условию или нужно найти.
double A1, B1, C1, A2, B2, C2, ox, oy;//Используются для вычислений.
printf("Введите координаты точек A, B, C.\n"); scanf("%lf %lf %lf %lf %lf %lf\n", &ax
, &ay
, &bx
, &by
, &cx
, &cy
); A1=cy-by;//Постоянные из уравнения прямой BC.
B1=bx-cx;
C1=by*(cx-bx)-bx*(cy-by);
A2=-B1;//Постоянные из уравнения прямой a.
B2=A1;
C2=B1*ax-A1*ay;
ox=(B1*C2-B2*C1)/(A1*B2-A2*B1);//Координаты точки О.
oy=(C1*A2-C2*A1)/(A1*B2-A2*B1);
dx=2*ox-ax;//Координаты точки D.
dy=2*oy-ay;
printf("D(%lf;%lf)\n", dx
, dy
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgbWFpbih2b2lkKSB7Cglkb3VibGUgYXgsIGF5LCBieCwgYnksIGN4LCBjeSwgZHgsIGR5Oy8v0JTQsNC90Ysg0L/QviDRg9GB0LvQvtCy0LjRjiDQuNC70Lgg0L3Rg9C20L3QviDQvdCw0LnRgtC4LgoJZG91YmxlIEExLCBCMSwgQzEsIEEyLCBCMiwgQzIsIG94LCBveTsvL9CY0YHQv9C+0LvRjNC30YPRjtGC0YHRjyDQtNC70Y8g0LLRi9GH0LjRgdC70LXQvdC40LkuCglwcmludGYoItCS0LLQtdC00LjRgtC1INC60L7QvtGA0LTQuNC90LDRgtGLINGC0L7Rh9C10LogQSwgQiwgQy5cbiIpOwoJc2NhbmYoIiVsZiAlbGYgJWxmICVsZiAlbGYgJWxmXG4iLCAmYXgsICZheSwgJmJ4LCAmYnksICZjeCwgJmN5KTsKCUExPWN5LWJ5Oy8v0J/QvtGB0YLQvtGP0L3QvdGL0LUg0LjQtyDRg9GA0LDQstC90LXQvdC40Y8g0L/RgNGP0LzQvtC5IEJDLgoJQjE9YngtY3g7CglDMT1ieSooY3gtYngpLWJ4KihjeS1ieSk7CglBMj0tQjE7Ly/Qn9C+0YHRgtC+0Y/QvdC90YvQtSDQuNC3INGD0YDQsNCy0L3QtdC90LjRjyDQv9GA0Y/QvNC+0LkgYS4KCUIyPUExOwoJQzI9QjEqYXgtQTEqYXk7CglveD0oQjEqQzItQjIqQzEpLyhBMSpCMi1BMipCMSk7Ly/QmtC+0L7RgNC00LjQvdCw0YLRiyDRgtC+0YfQutC4INCeLgoJb3k9KEMxKkEyLUMyKkExKS8oQTEqQjItQTIqQjEpOwoJZHg9MipveC1heDsvL9Ca0L7QvtGA0LTQuNC90LDRgtGLINGC0L7Rh9C60LggRC4KCWR5PTIqb3ktYXk7CglwcmludGYoIkQoJWxmOyVsZilcbiIsIGR4LCBkeSk7CglyZXR1cm4gMDsKfQo=