#include <iostream>
using namespace std;
struct Punkt {
double x;
double y;
};
void czytaj_punkt(Punkt &p) {
cout << "Podaj wspolrzedna x: ";
cin >> p.x;
cout << "Podaj wspolrzedna y: ";
cin >> p.y;
}
int punkty_po_stronie(Punkt A, Punkt B, Punkt P) {
double wynik = (B.x - A.x) * (P.y - A.y) - (B.y - A.y) * (P.x - A.x);
if (wynik > 0)
return 1; // lewa strona
else if (wynik < 0)
return -1; // prawa strona
else
return 0; // na prostej
}
int main() {
Punkt A, B, P;
cout << "Podaj punkt A:\n";
czytaj_punkt(A);
cout << "Podaj punkt B:\n";
czytaj_punkt(B);
cout << "Podaj punkt P:\n";
czytaj_punkt(P);
int wynik = punkty_po_stronie(A, B, P);
if (wynik > 0)
cout << "Punkt P lezy po lewej stronie\n";
else if (wynik < 0)
cout << "Punkt P lezy po prawej stronie\n";
else
cout << "Punkt P lezy na prostej\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bmt0IHsKICAgIGRvdWJsZSB4OwogICAgZG91YmxlIHk7Cn07Cgp2b2lkIGN6eXRhal9wdW5rdChQdW5rdCAmcCkgewogICAgY291dCA8PCAiUG9kYWogd3Nwb2xyemVkbmEgeDogIjsKICAgIGNpbiA+PiBwLng7CiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuYSB5OiAiOwogICAgY2luID4+IHAueTsKfQoKaW50IHB1bmt0eV9wb19zdHJvbmllKFB1bmt0IEEsIFB1bmt0IEIsIFB1bmt0IFApIHsKICAgIGRvdWJsZSB3eW5payA9IChCLnggLSBBLngpICogKFAueSAtIEEueSkgLSAoQi55IC0gQS55KSAqIChQLnggLSBBLngpOwoKICAgIGlmICh3eW5payA+IDApCiAgICAgICAgcmV0dXJuIDE7ICAgLy8gbGV3YSBzdHJvbmEKICAgIGVsc2UgaWYgKHd5bmlrIDwgMCkKICAgICAgICByZXR1cm4gLTE7ICAvLyBwcmF3YSBzdHJvbmEKICAgIGVsc2UKICAgICAgICByZXR1cm4gMDsgICAvLyBuYSBwcm9zdGVqCn0KCmludCBtYWluKCkgewogICAgUHVua3QgQSwgQiwgUDsKCiAgICBjb3V0IDw8ICJQb2RhaiBwdW5rdCBBOlxuIjsKICAgIGN6eXRhal9wdW5rdChBKTsKCiAgICBjb3V0IDw8ICJQb2RhaiBwdW5rdCBCOlxuIjsKICAgIGN6eXRhal9wdW5rdChCKTsKCiAgICBjb3V0IDw8ICJQb2RhaiBwdW5rdCBQOlxuIjsKICAgIGN6eXRhal9wdW5rdChQKTsKCiAgICBpbnQgd3luaWsgPSBwdW5rdHlfcG9fc3Ryb25pZShBLCBCLCBQKTsKCiAgICBpZiAod3luaWsgPiAwKQogICAgICAgIGNvdXQgPDwgIlB1bmt0IFAgbGV6eSBwbyBsZXdlaiBzdHJvbmllXG4iOwogICAgZWxzZSBpZiAod3luaWsgPCAwKQogICAgICAgIGNvdXQgPDwgIlB1bmt0IFAgbGV6eSBwbyBwcmF3ZWogc3Ryb25pZVxuIjsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJQdW5rdCBQIGxlenkgbmEgcHJvc3RlalxuIjsKCiAgICByZXR1cm4gMDsKfQ==