#include <iostream>
using namespace std;
// Definicja struktury punkt
struct punkt {
float x, y;
};
// Funkcja wczytująca punkt
punkt wczytaj_punkt(float x, float y) {
punkt p;
p.x = x;
p.y = y;
return p;
}
// Funkcja sprawdzająca, czy dwa punkty leżą po tej samej stronie prostej Ax + By + C = 0
bool po_tej_samej_stronie(punkt p1, punkt p2, float A, float B, float C) {
// Obliczamy wartości równania prostej dla obu punktów
float wartosc1 = A * p1.x + B * p1.y + C;
float wartosc2 = A * p2.x + B * p2.y + C;
// Jeśli iloczyn wartości jest większy niż 0, punkty są po tej samej stronie
if (wartosc1 * wartosc2 > 0)
return true;
else
return false;
}
int main() {
// Współczynniki prostej: A*x + B*y + C = 0
float A = 1, B = -1, C = 0;
// Wczytanie punktów
punkt P1 = wczytaj_punkt(1, 1);
punkt P2 = wczytaj_punkt(-1, -1);
// Sprawdzenie, czy punkty leżą po tej samej stronie
if (po_tej_samej_stronie(P1, P2, A, B, C))
cout << "Punkty leza po tej samej stronie prostej." << endl;
else
cout << "Punkty nie leza po tej samej stronie prostej." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIHN0cnVrdHVyeSBwdW5rdApzdHJ1Y3QgcHVua3QgewogICAgZmxvYXQgeCwgeTsKfTsKCi8vIEZ1bmtjamEgd2N6eXR1asSFY2EgcHVua3QKcHVua3Qgd2N6eXRhal9wdW5rdChmbG9hdCB4LCBmbG9hdCB5KSB7CiAgICBwdW5rdCBwOwogICAgcC54ID0geDsKICAgIHAueSA9IHk7CiAgICByZXR1cm4gcDsKfQoKLy8gRnVua2NqYSBzcHJhd2R6YWrEhWNhLCBjenkgZHdhIHB1bmt0eSBsZcW8xIUgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3RlaiBBeCArIEJ5ICsgQyA9IDAKYm9vbCBwb190ZWpfc2FtZWpfc3Ryb25pZShwdW5rdCBwMSwgcHVua3QgcDIsIGZsb2F0IEEsIGZsb2F0IEIsIGZsb2F0IEMpIHsKICAgIC8vIE9ibGljemFteSB3YXJ0b8WbY2kgcsOzd25hbmlhIHByb3N0ZWogZGxhIG9idSBwdW5rdMOzdwogICAgZmxvYXQgd2FydG9zYzEgPSBBICogcDEueCArIEIgKiBwMS55ICsgQzsKICAgIGZsb2F0IHdhcnRvc2MyID0gQSAqIHAyLnggKyBCICogcDIueSArIEM7CgogICAgLy8gSmXFm2xpIGlsb2N6eW4gd2FydG/Fm2NpIGplc3Qgd2nEmWtzenkgbmnFvCAwLCBwdW5rdHkgc8SFIHBvIHRlaiBzYW1laiBzdHJvbmllCiAgICBpZiAod2FydG9zYzEgKiB3YXJ0b3NjMiA+IDApCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIGZhbHNlOwp9CgppbnQgbWFpbigpIHsKICAgIC8vIFdzcMOzxYJjenlubmlraSBwcm9zdGVqOiBBKnggKyBCKnkgKyBDID0gMAogICAgZmxvYXQgQSA9IDEsIEIgPSAtMSwgQyA9IDA7CgogICAgLy8gV2N6eXRhbmllIHB1bmt0w7N3CiAgICBwdW5rdCBQMSA9IHdjenl0YWpfcHVua3QoMSwgMSk7CiAgICBwdW5rdCBQMiA9IHdjenl0YWpfcHVua3QoLTEsIC0xKTsKCiAgICAvLyBTcHJhd2R6ZW5pZSwgY3p5IHB1bmt0eSBsZcW8xIUgcG8gdGVqIHNhbWVqIHN0cm9uaWUKICAgIGlmIChwb190ZWpfc2FtZWpfc3Ryb25pZShQMSwgUDIsIEEsIEIsIEMpKQogICAgICAgIGNvdXQgPDwgIlB1bmt0eSBsZXphIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWouIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlB1bmt0eSBuaWUgbGV6YSBwbyB0ZWogc2FtZWogc3Ryb25pZSBwcm9zdGVqLiIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==