#include <iostream>
using namespace std;
struct punkt
{
float x, y;
};
// Funkcja przypisująca współrzędne do punktu
void wczytaj_punkt(punkt &p, float x, float y)
{
p.x = x;
p.y = y;
}
// Funkcja sprawdzająca, czy dwa punkty leżą po tej samej stronie prostej
// Prosta dana równaniem ogólnym: Ax + By + C = 0
bool po_tej_samej_stronie(float A, float B, float C, punkt P1, punkt P2)
{
float wartosc1 = A * P1.x + B * P1.y + C;
float wartosc2 = A * P2.x + B * P2.y + C;
// Punkty są po tej samej stronie, jeśli iloczyn ma znak dodatni
if (wartosc1 * wartosc2 > 0)
return true;
else
return false;
}
int main()
{
// Współczynniki prostej Ax + By + C = 0
float A = 1.0;
float B = -1.0;
float C = -2.0;
punkt P1, P2;
// Przykładowe współrzędne punktów
wczytaj_punkt(P1, 3.0, 4.0);
wczytaj_punkt(P2, 5.0, 7.0);
if (po_tej_samej_stronie(A, B, C, P1, P2))
cout << "Punkty leza po tej samej stronie prostej" << endl;
else
cout << "Punkty nie leza po tej samej stronie prostej" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHB1bmt0CnsKICAgIGZsb2F0IHgsIHk7Cn07CgovLyBGdW5rY2phIHByenlwaXN1asSFY2Egd3Nww7PFgnJ6xJlkbmUgZG8gcHVua3R1CnZvaWQgd2N6eXRhal9wdW5rdChwdW5rdCAmcCwgZmxvYXQgeCwgZmxvYXQgeSkKewogICAgcC54ID0geDsKICAgIHAueSA9IHk7Cn0KCi8vIEZ1bmtjamEgc3ByYXdkemFqxIVjYSwgY3p5IGR3YSBwdW5rdHkgbGXFvMSFIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWoKLy8gUHJvc3RhIGRhbmEgcsOzd25hbmllbSBvZ8OzbG55bTogQXggKyBCeSArIEMgPSAwCmJvb2wgcG9fdGVqX3NhbWVqX3N0cm9uaWUoZmxvYXQgQSwgZmxvYXQgQiwgZmxvYXQgQywgcHVua3QgUDEsIHB1bmt0IFAyKQp7CiAgICBmbG9hdCB3YXJ0b3NjMSA9IEEgKiBQMS54ICsgQiAqIFAxLnkgKyBDOwogICAgZmxvYXQgd2FydG9zYzIgPSBBICogUDIueCArIEIgKiBQMi55ICsgQzsKCiAgICAvLyBQdW5rdHkgc8SFIHBvIHRlaiBzYW1laiBzdHJvbmllLCBqZcWbbGkgaWxvY3p5biBtYSB6bmFrIGRvZGF0bmkKICAgIGlmICh3YXJ0b3NjMSAqIHdhcnRvc2MyID4gMCkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIGVsc2UKICAgICAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkKewogICAgLy8gV3Nww7PFgmN6eW5uaWtpIHByb3N0ZWogQXggKyBCeSArIEMgPSAwCiAgICBmbG9hdCBBID0gMS4wOwogICAgZmxvYXQgQiA9IC0xLjA7CiAgICBmbG9hdCBDID0gLTIuMDsKCiAgICBwdW5rdCBQMSwgUDI7CgogICAgLy8gUHJ6eWvFgmFkb3dlIHdzcMOzxYJyesSZZG5lIHB1bmt0w7N3CiAgICB3Y3p5dGFqX3B1bmt0KFAxLCAzLjAsIDQuMCk7CiAgICB3Y3p5dGFqX3B1bmt0KFAyLCA1LjAsIDcuMCk7CgogICAgaWYgKHBvX3Rlal9zYW1lal9zdHJvbmllKEEsIEIsIEMsIFAxLCBQMikpCiAgICAgICAgY291dCA8PCAiUHVua3R5IGxlemEgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3RlaiIgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJQdW5rdHkgbmllIGxlemEgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3RlaiIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==