#include <iostream>
using namespace std;
struct Punkt {
double x, y;
};
// funkcja obliczająca wyznacznik
double det(Punkt A, Punkt B, Punkt P) {
return (B.x - A.x) * (P.y - A.y) - (B.y - A.y) * (P.x - A.x);
}
// funkcja wczytująca punkt
Punkt czytaj_punkt(string nazwa) {
Punkt p;
cout << "Podaj wspolrzedne punktu " << nazwa << " (x y): ";
cin >> p.x >> p.y;
return p;
}
// funkcja sprawdzająca po której stronie leży punkt
void punkt_po_stronie(Punkt A, Punkt B, Punkt P) {
double wynik = det(A, B, P);
if (wynik > 0)
cout << "Punkt P lezy po lewej stronie" << endl;
else if (wynik < 0)
cout << "Punkt P lezy po prawej stronie" << endl;
else
cout << "Punkt P lezy na prostej AB" << endl;
}
int main() {
Punkt A, B, P;
A = czytaj_punkt("A");
B = czytaj_punkt("B");
P = czytaj_punkt("P");
punkt_po_stronie(A, B, P);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bmt0IHsKICAgIGRvdWJsZSB4LCB5Owp9OwoKLy8gZnVua2NqYSBvYmxpY3phasSFY2Egd3l6bmFjem5pawpkb3VibGUgZGV0KFB1bmt0IEEsIFB1bmt0IEIsIFB1bmt0IFApIHsKICAgIHJldHVybiAoQi54IC0gQS54KSAqIChQLnkgLSBBLnkpIC0gKEIueSAtIEEueSkgKiAoUC54IC0gQS54KTsKfQoKLy8gZnVua2NqYSB3Y3p5dHVqxIVjYSBwdW5rdApQdW5rdCBjenl0YWpfcHVua3Qoc3RyaW5nIG5hendhKSB7CiAgICBQdW5rdCBwOwogICAgY291dCA8PCAiUG9kYWogd3Nwb2xyemVkbmUgcHVua3R1ICIgPDwgbmF6d2EgPDwgIiAoeCB5KTogIjsKICAgIGNpbiA+PiBwLnggPj4gcC55OwogICAgcmV0dXJuIHA7Cn0KCi8vIGZ1bmtjamEgc3ByYXdkemFqxIVjYSBwbyBrdMOzcmVqIHN0cm9uaWUgbGXFvHkgcHVua3QKdm9pZCBwdW5rdF9wb19zdHJvbmllKFB1bmt0IEEsIFB1bmt0IEIsIFB1bmt0IFApIHsKICAgIGRvdWJsZSB3eW5payA9IGRldChBLCBCLCBQKTsKCiAgICBpZiAod3luaWsgPiAwKQogICAgICAgIGNvdXQgPDwgIlB1bmt0IFAgbGV6eSBwbyBsZXdlaiBzdHJvbmllIiA8PCBlbmRsOwogICAgZWxzZSBpZiAod3luaWsgPCAwKQogICAgICAgIGNvdXQgPDwgIlB1bmt0IFAgbGV6eSBwbyBwcmF3ZWogc3Ryb25pZSIgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJQdW5rdCBQIGxlenkgbmEgcHJvc3RlaiBBQiIgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgICBQdW5rdCBBLCBCLCBQOwoKICAgIEEgPSBjenl0YWpfcHVua3QoIkEiKTsKICAgIEIgPSBjenl0YWpfcHVua3QoIkIiKTsKICAgIFAgPSBjenl0YWpfcHVua3QoIlAiKTsKCiAgICBwdW5rdF9wb19zdHJvbmllKEEsIEIsIFApOwoKICAgIHJldHVybiAwOwp9