#include <iostream>
using namespace std;
// Funkcja wczytująca współrzędne punktu
void punkt(double &x, double &y) {
cin >> x >> y;
}
// Funkcja sprawdzająca czy dwa punkty leżą po tej samej stronie prostej
bool po_stronie(double x1, double y1, double x2, double y2) {
const double A = 1;
const double B = -1;
const double C = 0;
double wart1 = A * x1 + B * y1 + C;
double wart2 = A * x2 + B * y2 + C;
// Punkty są po tej samej stronie, jeśli iloczyn jest dodatni
return (wart1 * wart2 > 0);
}
int main() {
double xP1, yP1, xP2, yP2, xP3, yP3, xP4, yP4;
// Wczytanie punktów
punkt(xP1, yP1);
punkt(xP2, yP2);
punkt(xP3, yP3);
punkt(xP4, yP4);
bool wynik = true;
// Sprawdzamy wszystkie pary względem pierwszego punktu
if (!po_stronie(xP1, yP1, xP2, yP2)) wynik = false;
if (!po_stronie(xP1, yP1, xP3, yP3)) wynik = false;
if (!po_stronie(xP1, yP1, xP4, yP4)) wynik = false;
if (wynik)
cout << "Punkty leza po tej samej stronie prostej" << endl;
else
cout << "Punkty nie leza po tej samej stronie prostej" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRnVua2NqYSB3Y3p5dHVqxIVjYSB3c3DDs8WCcnrEmWRuZSBwdW5rdHUKdm9pZCBwdW5rdChkb3VibGUgJngsIGRvdWJsZSAmeSkgewogICAgY2luID4+IHggPj4geTsKfQoKLy8gRnVua2NqYSBzcHJhd2R6YWrEhWNhIGN6eSBkd2EgcHVua3R5IGxlxbzEhSBwbyB0ZWogc2FtZWogc3Ryb25pZSBwcm9zdGVqCmJvb2wgcG9fc3Ryb25pZShkb3VibGUgeDEsIGRvdWJsZSB5MSwgZG91YmxlIHgyLCBkb3VibGUgeTIpIHsKICAgIGNvbnN0IGRvdWJsZSBBID0gMTsKICAgIGNvbnN0IGRvdWJsZSBCID0gLTE7CiAgICBjb25zdCBkb3VibGUgQyA9IDA7CgogICAgZG91YmxlIHdhcnQxID0gQSAqIHgxICsgQiAqIHkxICsgQzsKICAgIGRvdWJsZSB3YXJ0MiA9IEEgKiB4MiArIEIgKiB5MiArIEM7CgogICAgLy8gUHVua3R5IHPEhSBwbyB0ZWogc2FtZWogc3Ryb25pZSwgamXFm2xpIGlsb2N6eW4gamVzdCBkb2RhdG5pCiAgICByZXR1cm4gKHdhcnQxICogd2FydDIgPiAwKTsKfQoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgeFAxLCB5UDEsIHhQMiwgeVAyLCB4UDMsIHlQMywgeFA0LCB5UDQ7CgogICAgLy8gV2N6eXRhbmllIHB1bmt0w7N3CiAgICBwdW5rdCh4UDEsIHlQMSk7CiAgICBwdW5rdCh4UDIsIHlQMik7CiAgICBwdW5rdCh4UDMsIHlQMyk7CiAgICBwdW5rdCh4UDQsIHlQNCk7CgogICAgYm9vbCB3eW5payA9IHRydWU7CgogICAgLy8gU3ByYXdkemFteSB3c3p5c3RraWUgcGFyeSB3emdsxJlkZW0gcGllcndzemVnbyBwdW5rdHUKICAgIGlmICghcG9fc3Ryb25pZSh4UDEsIHlQMSwgeFAyLCB5UDIpKSB3eW5payA9IGZhbHNlOwogICAgaWYgKCFwb19zdHJvbmllKHhQMSwgeVAxLCB4UDMsIHlQMykpIHd5bmlrID0gZmFsc2U7CiAgICBpZiAoIXBvX3N0cm9uaWUoeFAxLCB5UDEsIHhQNCwgeVA0KSkgd3luaWsgPSBmYWxzZTsKCiAgICBpZiAod3luaWspCiAgICAgICAgY291dCA8PCAiUHVua3R5IGxlemEgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3RlaiIgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJQdW5rdHkgbmllIGxlemEgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3RlaiIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==