#include <iostream>
using namespace std;
struct punkt
{
float x, y;
};
// Funkcja wczytująca punkt (tu przypisanie na stałe)
void wczytaj_punkt(punkt &p, float x, float y)
{
p.x = x;
p.y = y;
}
// Funkcja sprawdzająca, czy punkty leżą po tej samej stronie prostej
bool po_tej_samej_stronie(float A, float B, float C, punkt P1, punkt P2)
{
// Obliczamy wartości równania ogólnego dla obu punktów
float wartosc1 = A * P1.x + B * P1.y + C; // A*xP1 + B*yP1 + C
float wartosc2 = A * P2.x + B * P2.y + C; // A*xP2 + B*yP2 + C
// Jeżeli iloczyn >= 0, punkty są po tej samej stronie lub na prostej
if (wartosc1 * wartosc2 >= 0)
return true;
else
return false;
}
int main()
{
// Współczynniki prostej Ax + By + C = 0
float A = 1;
float B = 1;
float C = 0;
punkt P1, P2;
// Współrzędne punktów wpisane na stałe
wczytaj_punkt(P1, 1, 1);
wczytaj_punkt(P2, -1, -1);
if (po_tej_samej_stronie(A, B, C, P1, P2))
cout << "Punkty leza po tej samej stronie lub na prostej." << endl;
else
cout << "Punkty nie leza po tej samej stronie ani na prostej." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBwdW5rdAp7CiAgICBmbG9hdCB4LCB5Owp9OwoKLy8gRnVua2NqYSB3Y3p5dHVqxIVjYSBwdW5rdCAodHUgcHJ6eXBpc2FuaWUgbmEgc3RhxYJlKQp2b2lkIHdjenl0YWpfcHVua3QocHVua3QgJnAsIGZsb2F0IHgsIGZsb2F0IHkpCnsKICAgIHAueCA9IHg7CiAgICBwLnkgPSB5Owp9CgovLyBGdW5rY2phIHNwcmF3ZHphasSFY2EsIGN6eSBwdW5rdHkgbGXFvMSFIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWoKYm9vbCBwb190ZWpfc2FtZWpfc3Ryb25pZShmbG9hdCBBLCBmbG9hdCBCLCBmbG9hdCBDLCBwdW5rdCBQMSwgcHVua3QgUDIpCnsKICAgIC8vIE9ibGljemFteSB3YXJ0b8WbY2kgcsOzd25hbmlhIG9nw7NsbmVnbyBkbGEgb2J1IHB1bmt0w7N3CiAgICBmbG9hdCB3YXJ0b3NjMSA9IEEgKiBQMS54ICsgQiAqIFAxLnkgKyBDOyAgLy8gQSp4UDEgKyBCKnlQMSArIEMKICAgIGZsb2F0IHdhcnRvc2MyID0gQSAqIFAyLnggKyBCICogUDIueSArIEM7ICAvLyBBKnhQMiArIEIqeVAyICsgQwoKICAgIC8vIEplxbxlbGkgaWxvY3p5biA+PSAwLCBwdW5rdHkgc8SFIHBvIHRlaiBzYW1laiBzdHJvbmllIGx1YiBuYSBwcm9zdGVqCiAgICBpZiAod2FydG9zYzEgKiB3YXJ0b3NjMiA+PSAwKQogICAgICAgIHJldHVybiB0cnVlOwogICAgZWxzZQogICAgICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQp7CiAgICAvLyBXc3DDs8WCY3p5bm5pa2kgcHJvc3RlaiBBeCArIEJ5ICsgQyA9IDAKICAgIGZsb2F0IEEgPSAxOwogICAgZmxvYXQgQiA9IDE7CiAgICBmbG9hdCBDID0gMDsKCiAgICBwdW5rdCBQMSwgUDI7CgogICAgLy8gV3Nww7PFgnJ6xJlkbmUgcHVua3TDs3cgd3Bpc2FuZSBuYSBzdGHFgmUKICAgIHdjenl0YWpfcHVua3QoUDEsIDEsIDEpOwogICAgd2N6eXRhal9wdW5rdChQMiwgLTEsIC0xKTsKCiAgICBpZiAocG9fdGVqX3NhbWVqX3N0cm9uaWUoQSwgQiwgQywgUDEsIFAyKSkKICAgICAgICBjb3V0IDw8ICJQdW5rdHkgbGV6YSBwbyB0ZWogc2FtZWogc3Ryb25pZSBsdWIgbmEgcHJvc3Rlai4iIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiUHVua3R5IG5pZSBsZXphIHBvIHRlaiBzYW1laiBzdHJvbmllIGFuaSBuYSBwcm9zdGVqLiIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==