#include <iostream>
#include <cmath>
using namespace std;
int main () {
setlocale(LC_ALL,"Russian");
int xa, xb, xc, xd, ya, yb, yc, yd;
long double l, m;
//диагонали AC и BD четырёхугольника ABCD обозначим, как l и m, они являются векторами
//используем значения переменных с плавающей точкой
cout << "Тип четырёхугольника: " << endl;
cin >> xa >> xb >> xc >> xd >> ya >> yb >> yc >> yd;
l= abs(sqrt((xc - xa) * (xc - xa) + (yc - ya) * (yc -ya)));
m= abs(sqrt((xd - xb) * (xd - xb) + (yd - yb) * (yd -yb)));
//вычисляем длины векторов
if (((xc - xb) * (yd - ya) == (xd - xa) * (yc - yb)) || ((xb - xa) * (yc - yd) == (xc - xd) * (yb - ya))) {
if (((xb - xa) * (yc - yd) == (xc - xd) * (yb - ya)) && ((xc - xb) * (yd - ya) == (xd - xa) * (yc - yb)))
if (l==m)
cout << "Прямоугольник" << endl;
else {
cout << "Параллелограмм" << endl;
}
else {
cout << "Трапеция" << endl;
}
}
else {
cout << "Произвольный четырехугольник" << endl;
}
//последовательно используем основные свойства всех вышеуказанных типов четырёхугольника и аппарат векторной алгебры
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IG1haW4gKCkgewogICAgc2V0bG9jYWxlKExDX0FMTCwiUnVzc2lhbiIpOwogICAgaW50IHhhLCB4YiwgeGMsIHhkLCB5YSwgeWIsIHljLCB5ZDsgCiAgICBsb25nIGRvdWJsZSBsLCBtOwogICAgLy/QtNC40LDQs9C+0L3QsNC70LggQUMg0LggQkQg0YfQtdGC0YvRgNGR0YXRg9Cz0L7Qu9GM0L3QuNC60LAgQUJDRCDQvtCx0L7Qt9C90LDRh9C40LwsINC60LDQuiBsINC4IG0sINC+0L3QuCDRj9Cy0LvRj9GO0YLRgdGPINCy0LXQutGC0L7RgNCw0LzQuAogICAgLy/QuNGB0L/QvtC70YzQt9GD0LXQvCDQt9C90LDRh9C10L3QuNGPINC/0LXRgNC10LzQtdC90L3Ri9GFINGBINC/0LvQsNCy0LDRjtGJ0LXQuSDRgtC+0YfQutC+0LkKICAgIGNvdXQgPDwgItCi0LjQvyDRh9C10YLRi9GA0ZHRhdGD0LPQvtC70YzQvdC40LrQsDogIiA8PCBlbmRsOwogICAgY2luID4+IHhhID4+IHhiID4+IHhjID4+IHhkID4+IHlhID4+IHliID4+IHljID4+IHlkOwogICAgbD0gYWJzKHNxcnQoKHhjIC0geGEpICogKHhjIC0geGEpICsgKHljIC0geWEpICogKHljIC15YSkpKTsKICAgIG09IGFicyhzcXJ0KCh4ZCAtIHhiKSAqICh4ZCAtIHhiKSArICh5ZCAtIHliKSAqICh5ZCAteWIpKSk7CiAgICAvL9Cy0YvRh9C40YHQu9GP0LXQvCDQtNC70LjQvdGLINCy0LXQutGC0L7RgNC+0LIgCiAgICBpZiAoKCh4YyAtIHhiKSAqICh5ZCAtIHlhKSA9PSAoeGQgLSB4YSkgKiAoeWMgLSB5YikpIHx8ICgoeGIgLSB4YSkgKiAoeWMgLSB5ZCkgPT0gKHhjIC0geGQpICogKHliIC0geWEpKSkgeyAKICAgIAlpZiAoKCh4YiAtIHhhKSAqICh5YyAtIHlkKSA9PSAoeGMgLSB4ZCkgKiAoeWIgLSB5YSkpICYmICgoeGMgLSB4YikgKiAoeWQgLSB5YSkgPT0gKHhkIC0geGEpICogKHljIC0geWIpKSkgCiAgICAJCWlmIChsPT1tKQogICAgCQkJY291dCA8PCAi0J/RgNGP0LzQvtGD0LPQvtC70YzQvdC40LoiIDw8IGVuZGw7CiAgICAJCWVsc2UgewogICAgCQkJY291dCA8PCAi0J/QsNGA0LDQu9C70LXQu9C+0LPRgNCw0LzQvCIgPDwgZW5kbDsKICAgIAkJfQogICAgCWVsc2UgewogICAgCQljb3V0IDw8ICLQotGA0LDQv9C10YbQuNGPIiA8PCBlbmRsOwogICAgCX0KICAgIH0KICAgIGVsc2UgewogICAgCWNvdXQgPDwgItCf0YDQvtC40LfQstC+0LvRjNC90YvQuSDRh9C10YLRi9GA0LXRhdGD0LPQvtC70YzQvdC40LoiIDw8IGVuZGw7CiAgICB9CiAgICAvL9C/0L7RgdC70LXQtNC+0LLQsNGC0LXQu9GM0L3QviDQuNGB0L/QvtC70YzQt9GD0LXQvCDQvtGB0L3QvtCy0L3Ri9C1INGB0LLQvtC50YHRgtCy0LAg0LLRgdC10YUg0LLRi9GI0LXRg9C60LDQt9Cw0L3QvdGL0YUg0YLQuNC/0L7QsiDRh9C10YLRi9GA0ZHRhdGD0LPQvtC70YzQvdC40LrQsCDQuCDQsNC/0L/QsNGA0LDRgiDQstC10LrRgtC+0YDQvdC+0Lkg0LDQu9Cz0LXQsdGA0YsKICAgIHJldHVybiAwOwp9