#include <iostream>
using namespace std;
struct punkt
{
float x, y;
};
// wczytywanie punktu z klawiatury
void wczytaj_punkt(punkt &p)
{
cout << "Podaj x i y punktu: ";
cin >> p.x >> p.y;
}
// sprawdzanie czy punkty sa po tej samej stronie prostej
bool po_tej_samej_stronie(float A, float B, float C, punkt p1, punkt p2)
{
float W1 = A * p1.x + B * p1.y + C;
float W2 = A * p2.x + B * p2.y + C;
if (W1 == 0 || W2 == 0)
return false;
return (W1 * W2 > 0);
}
int main()
{
float A, B, C;
punkt P1, P2;
cout << "Podaj A B C (rownanie Ax + By + C = 0): ";
cin >> A >> B >> C;
wczytaj_punkt(P1);
wczytaj_punkt(P2);
if (po_tej_samej_stronie(A, B, C, P1, P2))
cout << "Punkty sa po tej samej stronie prostej." << endl;
else
cout << "Punkty NIE sa po tej samej stronie prostej." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBwdW5rdAp7CiAgICBmbG9hdCB4LCB5Owp9OwoKLy8gd2N6eXR5d2FuaWUgcHVua3R1IHoga2xhd2lhdHVyeQp2b2lkIHdjenl0YWpfcHVua3QocHVua3QgJnApCnsKICAgIGNvdXQgPDwgIlBvZGFqIHggaSB5IHB1bmt0dTogIjsKICAgIGNpbiA+PiBwLnggPj4gcC55Owp9CgovLyBzcHJhd2R6YW5pZSBjenkgcHVua3R5IHNhIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWoKYm9vbCBwb190ZWpfc2FtZWpfc3Ryb25pZShmbG9hdCBBLCBmbG9hdCBCLCBmbG9hdCBDLCBwdW5rdCBwMSwgcHVua3QgcDIpCnsKICAgIGZsb2F0IFcxID0gQSAqIHAxLnggKyBCICogcDEueSArIEM7CiAgICBmbG9hdCBXMiA9IEEgKiBwMi54ICsgQiAqIHAyLnkgKyBDOwoKICAgIGlmIChXMSA9PSAwIHx8IFcyID09IDApCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIHJldHVybiAoVzEgKiBXMiA+IDApOwp9CgppbnQgbWFpbigpCnsKICAgIGZsb2F0IEEsIEIsIEM7CiAgICBwdW5rdCBQMSwgUDI7CgogICAgY291dCA8PCAiUG9kYWogQSBCIEMgKHJvd25hbmllIEF4ICsgQnkgKyBDID0gMCk6ICI7CiAgICBjaW4gPj4gQSA+PiBCID4+IEM7CgogICAgd2N6eXRhal9wdW5rdChQMSk7CiAgICB3Y3p5dGFqX3B1bmt0KFAyKTsKCiAgICBpZiAocG9fdGVqX3NhbWVqX3N0cm9uaWUoQSwgQiwgQywgUDEsIFAyKSkKICAgICAgICBjb3V0IDw8ICJQdW5rdHkgc2EgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3Rlai4iIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiUHVua3R5IE5JRSBzYSBwbyB0ZWogc2FtZWogc3Ryb25pZSBwcm9zdGVqLiIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==